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

相关文章

Android WebView无法加载H5页面的常见问题和解决方法

《AndroidWebView无法加载H5页面的常见问题和解决方法》AndroidWebView是一种视图组件,使得Android应用能够显示网页内容,它基于Chromium,具备现代浏览器的许多功... 目录1. WebView 简介2. 常见问题3. 网络权限设置4. 启用 JavaScript5. D

Linux搭建Mysql主从同步的教程

《Linux搭建Mysql主从同步的教程》:本文主要介绍Linux搭建Mysql主从同步的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux搭建mysql主从同步1.启动mysql服务2.修改Mysql主库配置文件/etc/my.cnf3.重启主库my

Android如何获取当前CPU频率和占用率

《Android如何获取当前CPU频率和占用率》最近在优化App的性能,需要获取当前CPU视频频率和占用率,所以本文小编就来和大家总结一下如何在Android中获取当前CPU频率和占用率吧... 最近在优化 App 的性能,需要获取当前 CPU视频频率和占用率,通过查询资料,大致思路如下:目前没有标准的

SpringBoot操作MaxComputer方式(保姆级教程)

《SpringBoot操作MaxComputer方式(保姆级教程)》:本文主要介绍SpringBoot操作MaxComputer方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的... 目录引言uqNqjoe一、引入依赖二、配置文件 application.properties(信息用自己

在VSCode中本地运行DeepSeek的流程步骤

《在VSCode中本地运行DeepSeek的流程步骤》本文详细介绍了如何在本地VSCode中安装和配置Ollama和CodeGPT,以使用DeepSeek进行AI编码辅助,无需依赖云服务,需要的朋友可... 目录步骤 1:在 VSCode 中安装 Ollama 和 CodeGPT安装Ollama下载Olla

Tomcat的下载安装与使用教程

《Tomcat的下载安装与使用教程》本文介绍了Tomcat的下载、安装和使用方法,包括在本机和云服务器上部署Tomcat的过程,以及解决启动失败问题的方法... 目录Tomcat的下载安装与使用Tomcat的下载与安装Tomcat在本机运行使用Tomcat在php云服务器上的使用总结Tomcat的下载安装与

SpringBoot基于沙箱环境实现支付宝支付教程

《SpringBoot基于沙箱环境实现支付宝支付教程》本文介绍了如何使用支付宝沙箱环境进行开发测试,包括沙箱环境的介绍、准备步骤、在SpringBoot项目中结合支付宝沙箱进行支付接口的实现与测试... 目录一、支付宝沙箱环境介绍二、沙箱环境准备2.1 注册入驻支付宝开放平台2.2 配置沙箱环境2.3 沙箱

IDEA接入Deepseek的图文教程

《IDEA接入Deepseek的图文教程》在本篇文章中,我们将详细介绍如何在JetBrainsIDEA中使用Continue插件接入DeepSeek,让你的AI编程助手更智能,提高开发效率,感兴趣的小... 目录一、前置准备二、安装 Continue 插件三、配置 Continue 连接 DeepSeek四

jdk21下载、安装详细教程(Windows、Linux、macOS)

《jdk21下载、安装详细教程(Windows、Linux、macOS)》本文介绍了OpenJDK21的下载地址和安装步骤,包括Windows、Linux和macOS平台,下载后解压并设置环境变量,最... 目录1、官网2、下载openjdk3、安装4、验证1、官网官网地址:OpenJDK下载地址:Ar

Java8需要知道的4个函数式接口简单教程

《Java8需要知道的4个函数式接口简单教程》:本文主要介绍Java8中引入的函数式接口,包括Consumer、Supplier、Predicate和Function,以及它们的用法和特点,文中... 目录什么是函数是接口?Consumer接口定义核心特点注意事项常见用法1.基本用法2.结合andThen链