本文主要是介绍Android源码APK剥离到eclipse调试运行教程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
转载请注明出处多谢
废话不多说,简单介绍下流程有问题欢迎提问
1.首先把源码导入eclipse。
例如email,源码目录是package/app/email 这个文件夹拿出来,然后在eclipse中使用 file,import,existing Android code into workspace导入
这样工程导入了eclipse,会有很多错误,莫慌
2.观察Android.mk文件
源码中,app的src同级文件夹都会有Android.mk文件指导编译,打开观察
类似这样的,是需要一些资源文件,这样你就需要在源码找到对应的目录把src 删除,只保留res,然后作为Android library导入即可。
chips_dir := ../../../frameworks/ex/chips/res
unified_email_dir := UnifiedEmail
photo_dir := ../../../frameworks/opt/photoviewer/res ../../../frameworks/opt/photoviewer/appcompat/res
如何把一个工程作为Android library呢,如下,右键工程的property:
然后在需要调试的主工程右键property
这样之后需要的RES资源文件基本就没问题了。
接下来是需要的jar包。需要注意的是jar包中是不包含res 文件的所以需要上面的步骤。
需要导入哪些jar包也是在Android.mk文件:
Android.mk中如下的则是需要导入的jar包
LOCAL_STATIC_JAVA_LIBRARIES := android-common com.android.emailcommon guava
LOCAL_STATIC_JAVA_LIBRARIES += libphotoviewer_appcompat
LOCAL_STATIC_JAVA_LIBRARIES += android-support-v4
LOCAL_STATIC_JAVA_LIBRARIES += android-support-v7-appcompat
LOCAL_STATIC_JAVA_LIBRARIES += android-support-v7-gridlayout
LOCAL_STATIC_JAVA_LIBRARIES += android-support-v13
LOCAL_STATIC_JAVA_LIBRARIES += android-opt-bitmap
LOCAL_STATIC_JAVA_LIBRARIES += android-opt-datetimepicker
LOCAL_STATIC_JAVA_LIBRARIES += owasp-html-sanitizer
那么这些jar包可以到哪里找到呢,在源码的\out\target\common\obj\JAVA_LIBRARIES这里面找到对应的如android-support-v7-appcompat文件夹,进去的class.jar就是。
注意,源码需要编译过才有out目录
我们可以把他提取出来,重命名为android-support-v7-appcompat.jar
3.关联jar包及遇到问题
依旧右键工程,property 如下选择jar包存放的路径
问题:
把所有jar包都导入后,有可能会运行崩溃。这是因为有的包需要打包到APK里,不光编译时需要这些包,运行时也要。如下打钩,并且顺序也有影响,framework的包一般都要在最上面,包也不能随便打钩,需要具体自己试试。像framework是不需要打钩的。
另外还有可能遇到报错
Multiple dex files define 这种错误如下
这是因为有两个包都有 报错的Landorid/support/annotation/Animres,因此重复了。
可以直接在压缩的情况下打开jar包,看看哪些包有这个报错的文件,直接在压缩的状态下删除重复的包即可。
最后有一些系统APK,剥离出来也需要进行签名才能正常运行,这个要根据每个平台来了。
基本上就是这样,欢迎大家留言讨论,转载请注明出处
这篇关于Android源码APK剥离到eclipse调试运行教程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!