android编译资源
❶ 简述android源代码的编译过程
编译Android源培谈代码是一个相对复杂的过程,涉及多个步骤和工具。下面我将首先简要概括编译过程,然后详细解释每个步骤。
简要
Android源代码的编译过程主要包括获取源代码、设置编译环境、选择编译目标、开始编译以及处理编译结果等步骤。侍没
1. 获取源代码:编译Android源代码的第一步是从官方渠道获取源代码。通常,这可以通过使用Git工具从Android Open Source Project(AOSP)的官方仓库克隆代码来完成。命令示例:`git clone https://android.googlesource.com/platform/manifest`。
2. 设置编译环境:在编译之前,需要配置合适的编译环境。这通常涉及安装特定的操作系统(如Ubuntu的某些版本),安装必要的依赖项(如java开发工具包和Android Debug Bridge),以及配置特定的环境变量等。
3. 选择编译目标:Android支持多种设备和配置,因此编译时需要指定目标。这可以通过选择特定的设备配置文件(如针对Pixel手机的`aosp_arm64-eng`)或使用配谈碰通用配置来完成。选择目标后,编译系统将知道需要构建哪些组件和变种。
4. 开始编译:设置好环境并选择了编译目标后,就可以开始编译过程了。在源代码的根目录下,可以使用命令`make -jN`来启动编译,其中`N`通常设置为系统核心数的1~2倍,以并行处理编译任务,加快编译速度。编译过程中,系统将根据Makefile文件和其他构建脚本,自动下载所需的预构建二进制文件,并编译源代码。
5. 处理编译结果:编译完成后,将在输出目录(通常是`out/`目录)中生成编译结果。这包括可用于模拟器的系统镜像、可用于实际设备的OTA包或完整的系统镜像等。根据需要,可以进一步处理这些输出文件,如打包、签名等。
在整个编译过程中,还可能遇到各种依赖问题和编译错误,需要根据错误信息进行调试和解决。由于Android源代码庞大且复杂,完整的编译可能需要数小时甚至更长时间,因此耐心和合适的硬件配置也是成功编译的重要因素。
❷ android反编译怎么看资源文件
首先需要反编译的三个软件:
apktool:资源文件获取;
dex2jar:源码文件获取;
jd-gui:源码查看。
反编译流程:
1. apk反编译得到程序的源代码、资源文件
1.1 apktool解压得到3个文件:aapt.exe,apktool.bat,apktool.jar ,现在用weixin做实验(这里仅是示范作用),将需要反编译的weixin_800.apk文件放到该目录下,打开命令行界面(运行-CMD),定位到apktool文件夹,输入以下命令:apktool d [-s] -f weixin_800.apk -o weixin; 其中weixin_800.apk是要反编译的apk文件名,weixin是反编译后存放的目录文件,此文件不需要新建,反编译后会自动生成
1.2 打开weixin文件夹,res就是要找的资源文件,目录结构和平时建的项目很像。
1.3 这时候打开D:apktoolweixin
esanim下a.xml看下,xml文件轻而易举的获取了
2. Apk反编译得到Java源代码
2.1 解压dex2jar和jd-gui文件;将要反编译的APK后缀名改为.zip,并解压,得到其中的classes.dex文件,将获取到的classes.dex放到之前解压出来的工具dex2jar-0.0.9.15文件夹内
2.2 在命令行下定位到dex2jar.bat所在目录,输入dex2jar.bat classes.dex
2.3 这个时候会发现dex2jar-0.0.9.15文件夹多了一个classes_dex2jar.jar文件
2.4 现在就可以用工具jd-gui.exe打开这个jar了
2.5 通过反编译,可以知道别人用到了哪些库文件,它的代码大体是如何编写的等等。有了思路就可以自己尝试了。
❸ Android反编译简单实战
初识apk
Android应用通常以apk形式发布,这是Android Package的缩写,相当于安装包。开发完成后,应用需要被打包成apk文件,再通过签名确保其安全性和完整性,才能供用户下载和安装。
反编译工具
反编译apk文件获取内部源码和资源,通常使用apktool、Smali和Baksmali等工具。这些工具能够在命令行中运行,方便操作,甚至可将目录添加到环境变量中,实现便捷使用。
实战反编译
使用apktool对apk进行反编译,获取应用的源码和资源文件。通过反编译,可以修改资源、替换启动活动,甚至分析源码后进行二次修改,从而创建新活动并整合到原有应用中,如添加广告。
修改与整合
通过Java2smali插件或新建项目的方式,将修改的Java文件和布局整合进apk。将新创建的活动整合至原应用,如添加新的启动活动,修改布局文件中的代码,实现活动切换。
重新打包与签名
重新打包修改后的apk文件,并使用签名工具jarsigner对新apk进行签名,确保其安全性。签名过程中需要使用签名证书文件,通常通过Android Studio生成并拷贝到apk目录中。
总结
通过反编译apk进行实战,可以深入了解Android应用的结构、编译流程及安全防护。尽管反编译过程可能遇到挑战,如遭遇混淆、加固或安全校验等问题,但通过反编译实践,可以提升对Android开发的理解,以及对应用安全性的认识。同时,也提醒开发者注重应用安全性,避免进行不道德的行为,如修改他人的应用。总之,反编译实战有助于开发者提升技能,但应遵循法律和道德规范。
❹ android怎么样编译framework
在开发过程中,尤其是Framework相关开发时,有时候需要重新编译资源文件.编译顺序和注意事项如下:
1,资源文件位置:frameworks/base/core/res
2,编译后生成的文件:framework-res.apk 另外com.android.internal.R会更新这个R.java所在目录为/out/target/common/R/com/android/internal.
3,编译资源后,必须重新编译framework.jar.
4,如果在frameworks/base/core/res执行mm是并不重新编译,请使用toutch ### 命令
###代表目录下的一个文件.
5,资源文件要小写.
6,如果没有必要,不要编译资源文件,可以用其他方式使用资源,比如将资源使用adb push 传到某个目
录,程序中直接指定具体目录.我在编译资源过程中遇到一些奇怪的问题,比如有时候许多图标会显
示错误,原因猜测跟重新编译资源有关,可以试着重新编译services.jar并替换看看.
举一个例子:假如我想在WindowManagerService.java中使用一个图片资源pic.png.顺序如下.
1,将文件pic.png拷贝到位置:frameworks/base/core/res/res/drawable下.
2,在frameworks/base/core/res/res/drawable目录下执行touch pic.png.
3,进入目录frameworks/base/core/res/ 执行mm命令, 编译 framework-res.apk
4,执行完后com.android.internal.R 会新生成一个R.drawable.pic的引用.在程序中使用即可.
5,在目录frameworks/base/ 下执行mm 编译 framework.jar.
6,在WindowManagerService.java中使用com.android.internal.R.drawable.pic,使用完后保存文件.
7,进入目录frameworks/base/services/java/ 执行mm 编译 services.jar
8,替换机器上(虚拟机或者真机)的jar apk文件.
adb push framework-res.apk /system/framework/
adb push services.jar /system/framework/
adb push framework.jar /system/framework/
执行命令时注意framework-res.apk 的真实路径.
9,reboot 机器,查看修改结果.大功告成!