这个关键是要看你的电脑配置情况,以及代码的附加情况,有的平台软件会附加很多东西上去,编译就比较慢了。
我们这边使用的是四核八线程的电脑,32GB内存,
原生代码 4.4 八线程编译40分钟左右,5.1,一个半小时左右,6.0的大约一个小时,以上是原生代码编译模拟器的时间。
高通代码6.0编译一般需要两个小时左右,mtk的也是两个小时左右,
‘贰’ 反编译Android APK的具体步骤是怎样的
1、配置好JAVA环境变量,下载:apktool 解压的文件放在C盘根目录的apktool文件夹里(apktool文件夹自己创立)
2打开命令提示符,(开始-运行-输入cmd)
3输入:cd \apktool 系统指令到了apktool文件夹(这里就是为什么要把解压的apktool解压的文件放到apktool文件夹的原因,当然你也可以自命名文件夹的名称,那么比如arc,那么指令就变成了:cd \arc 前提是你必须把apktool解压的文件放到这个文件夹里面)
4使用RE管理器把系统里面的framework-res.apk 与 SystemUI.apk 提取出来放在apktool文件夹里面
5 如果只是想反编译framework-res.apk
输入apktool if framework-res.apk(框架的建立)
6开始最重要的反编译,输入指令,apktool d framework-res.apk
(反编辑的APK一定要用没换过图片的,否则回编辑失败)
7最后反编译完成
修改代码完成后,输入代码:apktool d framework-res 即可完成回编译
8回编译后的新的 apk在framework/dis 文件夹里面
9如果反编译的是系统文件,比如,SystemUI.apk 那么必须进行挂载框架,反编译时,必须敲入一下命令:(然后再重复7-9步骤)
apktool if framework-res.apk
apktool if SystemUI.apk
10对于三星手机(比如9100、9108/9100G),如果反编译SystemUI.apk要敲入一下命令进行框架挂载apktool if framework-res.apk
apktool if twframework-res.apk
apktool if SystemUI.apk
11回编译的命令是 apktool b XXX (没有后面的apk后缀)反编译的命令是 apktool d xxx (有后面的apk)
‘叁’ 整体编译Android系统,大家用了多少时间
我自己实际编译ICS4.0.4源码情况:acer台式机,3.2Ghz cpu,4核,8GB/1600hz内存,整体编译(含u-boot、kernel、boot.img和system.img)需要1小时10分钟。编译时,使用make -j8(因为硬件cpu是4线程的,故使用2倍线程数)。之后的增量编译,一般需要5~10分钟即可。
‘肆’ 安卓源码编译成功为什么不能运行
编译:
1. 初始化:
source build/envsetup.sh
2. 选择target
lunch
然后选择aosp_arm
3.
make -j4
等待大概2个小时,就可以顺利编译完成。
模拟器运行
直接运行emulator,会出现如下错误:
emulator: ERROR: You did not specify a virtual device name, and the system
directory could not be found.
原因是文件路径没有设置,解决办法添加绝对路径:
out/host/linux-x86/bin/emulator -kernel prebuilts/qemu-kernel/arm/kernel-qemu -sysdir out/target/proct/generic/ -system out/target/proct/generic/system.img -ramdisk out/target/proct/generic/ramdisk.img -data out/target/proct/generic/userdata.img -sdcard sdcard.img -scale 0.7 -memory 512 -partition-size 1024
然后运行模拟器
‘伍’ 自己可以编译安卓源码吗
用最新的Ubuntu 16.04,请首先确保自己已经安装了Git.没安装的同学可以通过以下命令进行安装:
sudo apt-get install git git config –global user.email “[email protected]” git config –global user.name “test”
其中[email protected]为你自己的邮箱.
简要说明
android源码编译的四个流程:1.源码下载;2.构建编译环境;3.编译源码;4运行.下文也将按照该流程讲述.
源码下载
由于某墙的原因,这里我们采用国内的镜像源进行下载.
目前,可用的镜像源一般是科大和清华的,具体使用差不多,这里我选择清华大学镜像进行说明.(参考:科大源,清华源)
repo工具下载及安装
通过执行以下命令实现repo工具的下载和安装
mkdir ~/binPATH=~/bin:$PATHcurl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repochmod a+x ~/bin/repo
补充说明
这里,我来简单的介绍下repo工具,我们知道AOSP项目由不同的子项目组成,为了方便进行管理,Google采用Git对AOSP项目进行多仓库管理.在聊repo工具之前,我先带你来聊聊多仓库项目:
我们有个非常庞大的项目Pre,该项目由很多个子项目R1,R2,...Rn等组成,为了方便管理和协同开发,我们为每个子项目创立自己的仓库,整个项目的结构如下:
这里写图片描述
执行完该命令后,再使用make命令继续编译.某些情况下,当你执行jack-admin kill-server时可能提示你命令不存在,此时去你去out/host/linux-x86/bin/目录下会发现不存在jack-admin文件.如果我是你,我就会重新repo sync下,然后从头来过.
错误三:使用emulator时,虚拟机停在黑屏界面,点击无任何响应.此时,可能是kerner内核问题,解决方法如下:
执行如下命令:
通过使用kernel-qemu-armv7内核 解决模拟器等待黑屏问题.而-partition-size 1024 则是解决警告: system partion siez adjusted to match image file (163 MB >66 MB)
如果你一开始编译的版本是aosp_arm-eng,使用上述命令仍然不能解决等待黑屏问题时,不妨编译aosp_arm64-eng试试.
结束吧
到现在为止,你已经了解了整个android编译的流程.除此之外,我也简单的说明android源码的多仓库管理机制.下面,不妨自己动手尝试一下.