将packages/apps/下的app导入eclipse
当刚接触android自带的一个模块时,如何去熟悉它?相信不少人第一步都会尝试着去了解其内容的调用流程,而此时若能够单步调试则显得非常重要了,于是有了文章标题所说的尝试。
作者这里要导入的是Settings文件夹,基于android 4.0(MTK6515所用):
1、将Settings整个文件夹拷贝一份备用
2、基于Settings建立一个eclipse工程
打开eclipse,File > New > Project > Android Project > Create project from existing source,选择第1步所拷贝的Settings文件夹。
3、导入部分framework library
执行完第2步会出现很多诸如"com.android.internal.R cannot be resolved"的错误,这主要是由于framework部分资源找不到,这时我们可以手动添加,当然前提是你要用整个工程的代码且已经编译。
在eclipse中右键工程名Settings,选择 Build Path > Configure Build Path > Libraries > Add External JARS,然后选择以下路径的jars:
1)out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar
--这个主要是android的框架类
2)out/target/common/obj/JAVA_LIBRARIES/android-common_intermediates/classes.jar
--这个包含com.android.common.Search这个类
3)out/target/common/obj/JAVA_LIBRARIES/core_intermediates/classes.jar
--这个包包含dalvik.system.VMRuntime这个类
4)out/target/common/obj/JAVA_LIBRARIES/mediatek-framework_intermediates/classes.jar
--这个主要是mediatek的框架类
这样基本上就能解决大部分framework资源找不到的问题
- ps 这里也可将上述classes.jar重命名后复制到某一文件夹后统一导入
4、导入app自身
如这里导入:
out/target/common/obj/APPS/Settings_intermediates/classes.jar
5、去除uid
打开 AndroidManifest.xml,找到 android:sharedUserId并去除之:
android:sharedUserId="android.uid.system"
否则在运行时会提示如下错误:
INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
参考资料:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了