特别是,我在哪里可以浏览任何Android源应用程序(例如联系人应用程序)的源代码?是下载所有的唯一方法吗?
对于Activity源代码,第3898行(靠近底部):
/**
* @hide
*/
public final boolean isResumed() {
return mResumed;
}
Run Code Online (Sandbox Code Playgroud)
什么@hide意思?
我发现我public class ChildActivity extends Activity { ... }不能用/看Activity.isResumed().这是正常的吗?我该如何访问它?
我想将新的承载添加到Android(rooted/custom build),成为Wifi和GPRS的同行.
我做了一些Android开发,我知道(在Android 2.2中)有WIFI和GPRS的常量.这是否意味着我需要在所有地方添加常量,以及提供网络堆栈?
我要添加的第一个载体是USBNet(用于带USB主机的Androids).
另一个是3G USB加密狗作为第二个GPRS承载.
我已经开始下载源代码了.
我想重建Android SDK(或者更确切地说只是android.jar)以包含隐藏和内部API.
我找不到任何关于如何解决这个问题的文档或讨论.我已经设置了一个能够构建cm7的Ubuntu CyanogenMod构建环境.
现在,我读到make SDK将构建SDK,但我想构建一个SDK,其中包含使用@hide标记为隐藏的方法和字段.这可能吗?
我想要做的是更改使用隐藏API的应用程序,为了重建它,我想使用修改后的SDK.
我想修改Android OS(AOSP的官方图片),为正常的电话回放声音添加预处理功能.
我已经为app音频播放实现了这种过滤(通过修改HAL和audioflinger).
我只针对特定设备(Nexus 5X).另外,我只需要过滤播放 - 我不关心录制(上行链路).
更新#1:
为了说清楚 - 我可以修改特定于Qualcomm的驱动程序,或者在Nexus 5X上运行的任何部分,并且可以帮助我修改通话中的播放.
更新#2:
我正在尝试创建一个Java层应用程序,将手机播放实时路由到音乐流.
我已经成功地安装它作为系统的应用程序,获得权限初始化AudioRecord用AudioSource.VOICE_DOWNLINK.但是,录音会给出空白样本; 它不记录语音通话.
这是我的工作线程中的代码:
// Start recording
int recBufferSize = AudioRecord.getMinBufferSize(44100, AudioFormat.CHANNEL_IN_STEREO, AudioFormat.ENCODING_PCM_16BIT);
mRecord = new AudioRecord(MediaRecorder.AudioSource.VOICE_DOWNLINK, 44100, AudioFormat.CHANNEL_IN_STEREO, AudioFormat.ENCODING_PCM_16BIT, recBufferSize);
// Start playback
int playBufferSize = AudioTrack.getMinBufferSize(44100, AudioFormat.CHANNEL_OUT_STEREO, AudioFormat.ENCODING_PCM_16BIT);
mTrack = new AudioTrack(AudioManager.STREAM_MUSIC, 44100, AudioFormat.CHANNEL_OUT_STEREO, AudioFormat.ENCODING_PCM_16BIT, playBufferSize, AudioTrack.MODE_STREAM);
mRecord.startRecording();;
mTrack.play();
int bufSize = 1024;
short[] buffer = new short[bufSize];
int res;
while (!interrupted())
{
// Pull recording buffers …Run Code Online (Sandbox Code Playgroud) android安装了一些应用程序后,我发现它将在智能手机中更改为odex文件(而不是apk).它是如何发生的?谁能教我,我对它很感兴趣.
所以在4.3中有一个系统应用程序的概念.放入的APK /system/app被授予系统权限.从4.4开始,有一个新的"特权应用程序"概念.特权应用程序存储在/system/priv-app目录中,似乎有不同的对待.如果你查看下面的AOSP源代码PackageManagerService,你会看到新的方法,如
static boolean locationIsPrivileged(File path) {
try {
final String privilegedAppDir = new File(Environment.getRootDirectory(), "priv-app")
.getCanonicalPath();
return path.getCanonicalPath().startsWith(privilegedAppDir);
} catch (IOException e) {
Slog.e(TAG, "Unable to access code path " + path);
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
所以这里是一个不同的情况的例子.
public final void addActivity(PackageParser.Activity a, String type) {
...
if (!systemApp && intent.getPriority() > 0 && "activity".equals(type)) {
intent.setPriority(0);
Log.w(TAG, "Package " + a.info.applicationInfo.packageName + " has activity "
+ a.className + " with priority > 0, …Run Code Online (Sandbox Code Playgroud) 有没有人成功编译了android内核并在Android模拟器中测试过它,如果有的话还有什么特别需要做的吗?
SDK的文档非常好,但是我很难找到用于编译内核和在模拟器中设置自定义机器的文档.
我对wakelock有疑问.在下面显示的情况下,Android操作系统是否释放唤醒锁(PARTIAL_WAKE_LOCK如果您需要指定)以防止获取唤醒锁并且在关闭电源(不睡眠)之前浪费电池.
案例1-a:
App已经在其中一个线程中获得了wakelock(没有超时选项)(在这种情况下请认为这是合理的)并且它被设计为在关键任务完成时释放唤醒锁.应用程序可以被taskmanager或臭名昭着的taskkiller杀死,应用程序没有机会让它的线程释放唤醒锁.那个唤醒锁会发生什么?
案例1-b :(
如果对案例1-a的回答是"是的,请不要担心",那么请忽略这种情况.)与案例1-a相同但应用程序给予唤醒锁的超时选项,比如3秒.此超时选项是否保持有效?
案例2-a:
请想象一下,有一项服务由AlarmManager启动(通过广播接收器),并且该服务已获得唤醒锁(没有超时选项).此服务旨在使唤醒锁获取时间最小化.但不幸的是,由于内存紧缩,Android操作系统选择了这项服务.(我不知道当获得唤醒锁时操作系统是否不会终止服务,但我猜操作系统并不关心.但我希望操作系统稍后会发布唤醒锁.)那个唤醒锁会发生什么?
案例2-b :(
如果对案例2-a的回答是"是的,请不要担心",那么请忽略这种情况.)与案例2-a相同但是服务给了唤醒锁的超时选项,比如3秒.此超时选项是否保持有效?
android kill-process android-source android-wake-lock wakelock
我正在查看Android Camera代码,当我尝试导入时android.os.SystemProperties,无法找到它.
这是我正在查看的文件:https:
//android.googlesource.com/platform/packages/apps/Camera/+/eclair-release/src/com/android/camera/VideoCamera.java
我创建了一个新的2.1项目,并尝试再次导入此命名空间,但仍然无法找到它.我检查了https://developer.android.com并SystemProperties没有列出.
我错过了什么?
android ×10
android-source ×10
3g ×1
alsa ×1
android-rom ×1
dalvik ×1
emulation ×1
kill-process ×1
wakelock ×1
wifi ×1