Android Studio 导入Framework代码,并对Framework断点调试,
推荐IDE使用Android Studio。
注意:
也可在Android Studio里直接编辑代码,例如修改 com/android/server/power/PowerManagerService.java 这个文件,
先将 com/android/server/power 这个文件夹改成777,再将PowerManagerService.java 改成777
这样将可编译保存文件了,不然会提示备份出错。
具体命令:
sudo chmod 777 android/frameworks/base/services/core/java/com/android/server/power/
sudo chmod 777 android/frameworks/base/services/core/java/com/android/server/power/DisplayManagerService.java
在android目录下,编译命令:
./mk_android.sh -t userdebug -p frameworks/base/services/
services.jar编译好了,就可以push到手机上了,命令如下:
adb devices
adb remount
adb push D:\ABC\SM8250_Q\android\out\target\product\kona\system\framework\services.jar system/framework/
adb shell stop && adb shell start //敲完后,Android Dalvik虚拟机会重启(注意 不是手机重启) 后面再push文件时,adb remount不需要再敲。 手机重启时,敲一遍adb remount
LOG
加log
Slog.i(“liu===”, "liu— iR_is_running = " + iR_is_running);
log输出
adb logcat -s liu
=============================================
Framework开发经验
把调用堆栈显示出来
if (DEBUG_SPEW) {
StackTraceElement[] stack = new Throwable().getStackTrace();
for (StackTraceElement element : stack)
{
Slog.d(TAG, “PowerMS |—-” + element.toString());
}
}
因为Android Studio由于内存的原因,一般不能导入所有源码。 所以结合网页看源码,网页上所有类、变量都能找到定义。
Google源码网址: cs.android (需要科学上网)
如果只改了一个文件: android\frameworks\base\core\java\android\view\ViewRootImpl.java
编译命令: ./mk_android.sh -t userdebug -p frameworks/base:framework ,
只编译一个framework.jar文件
2022年3月6日
上海徐汇
更多推荐
Android Framework开发
发布评论