Android源码APK剥离到eclipse调试运行教程

2024-01-20 02:38

本文主要是介绍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调试运行教程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/624559

相关文章

Nexus安装和启动的实现教程

《Nexus安装和启动的实现教程》:本文主要介绍Nexus安装和启动的实现教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Nexus下载二、Nexus安装和启动三、关闭Nexus总结一、Nexus下载官方下载链接:DownloadWindows系统根

CnPlugin是PL/SQL Developer工具插件使用教程

《CnPlugin是PL/SQLDeveloper工具插件使用教程》:本文主要介绍CnPlugin是PL/SQLDeveloper工具插件使用教程,具有很好的参考价值,希望对大家有所帮助,如有错... 目录PL/SQL Developer工具插件使用安装拷贝文件配置总结PL/SQL Developer工具插

IDEA如何实现远程断点调试jar包

《IDEA如何实现远程断点调试jar包》:本文主要介绍IDEA如何实现远程断点调试jar包的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录问题步骤总结问题以jar包的形式运行Spring Boot项目时报错,但是在IDEA开发环境javascript下编译

Java -jar命令如何运行外部依赖JAR包

《Java-jar命令如何运行外部依赖JAR包》在Java应用部署中,java-jar命令是启动可执行JAR包的标准方式,但当应用需要依赖外部JAR文件时,直接使用java-jar会面临类加载困... 目录引言:外部依赖JAR的必要性一、问题本质:类加载机制的限制1. Java -jar的默认行为2. 类加

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技

java -jar命令运行 jar包时运行外部依赖jar包的场景分析

《java-jar命令运行jar包时运行外部依赖jar包的场景分析》:本文主要介绍java-jar命令运行jar包时运行外部依赖jar包的场景分析,本文给大家介绍的非常详细,对大家的学习或工作... 目录Java -jar命令运行 jar包时如何运行外部依赖jar包场景:解决:方法一、启动参数添加: -Xb

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

Python使用Code2flow将代码转化为流程图的操作教程

《Python使用Code2flow将代码转化为流程图的操作教程》Code2flow是一款开源工具,能够将代码自动转换为流程图,该工具对于代码审查、调试和理解大型代码库非常有用,在这篇博客中,我们将深... 目录引言1nVflRA、为什么选择 Code2flow?2、安装 Code2flow3、基本功能演示

Java Spring 中的监听器Listener详解与实战教程

《JavaSpring中的监听器Listener详解与实战教程》Spring提供了多种监听器机制,可以用于监听应用生命周期、会话生命周期和请求处理过程中的事件,:本文主要介绍JavaSprin... 目录一、监听器的作用1.1 应用生命周期管理1.2 会话管理1.3 请求处理监控二、创建监听器2.1 Ser

MySQL 安装配置超完整教程

《MySQL安装配置超完整教程》MySQL是一款广泛使用的开源关系型数据库管理系统(RDBMS),由瑞典MySQLAB公司开发,目前属于Oracle公司旗下产品,:本文主要介绍MySQL安装配置... 目录一、mysql 简介二、下载 MySQL三、安装 MySQL四、配置环境变量五、配置 MySQL5.1