当前位置:首页 » 编程软件 » android源码编译效率提升

android源码编译效率提升

发布时间: 2022-10-10 15:49:06

1. android 编译服务器大概需要什么配置 5

工欲善其事,必先利其器”,要想提高团队整体的开发效率,尽可能的提前完成开发任务,必须要配备一套配置给力的开发设备。源码编译服务器硬件配置的高低,直接影响着系统固件升级和ROM版本发布的速度和效率。

由于目前Google发布的最新版本的Android系统源码体积越来越大,因此,越是定制高版本的系统,对编译服务器的硬件配置要求就越高,这里根据调研,给出目前Android
6.0及以下版本源码定制开发的基本配置,供大家参考。

首先进行一波企业级android源码编译服务器的推荐,这类推荐网上绝无仅有,这还是我进行了很久的调研,询问很多朋友【其中包括不乏6年以上系统开发的大牛,也有之前公司的主管等】,也查了很多资料才挑选出来,提出需求后让上级审批,目前上一级已经认可比审批,等待领导签字。给力。

详细

2. 自己可以编译安卓源码吗

用最新的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内核问题,解决方法如下:
执行如下命令:

  • ./out/host/linux-x86/bin/emulator -partition-size 1024 -kernel ./prebuilts/qemu-kernel/arm/kernel-qemu-armv7

  • 通过使用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源码的多仓库管理机制.下面,不妨自己动手尝试一下.

    3. 如何加速Android源码的编译

    每个编译单元都会产生一个obj文件,然后所以这些obj文件会被link到一起,并且这个过程很难并行

    4. 如何编译android手机源码

    编译android系统源码准备工作:
    下载android源码
    在windows上用gitbash ,git clone 下载代码
    在linux上这样下载
    创建~/bin目录,用来存放repo程序,如下:

    $ cd ~
    $ mkdir bin
    初始化repo
    repo是android对git的一个封装,简化了一些git的操作。
    创建工程目录:
    $ mkdir android
    $ cd android
    下载repo脚本并使其可执行:
    $ curl http://android.git.kernel.org/repo >~/bin/repo
    $ chmod a+x ~/bin/repo
    repo初始化:
    $ repo init -u git://android.git.kernel.org/platform/manifest.git
    在此过程中需要输入名字和email地址。初始化成功后,会显示:
    repo initialized in /android
    在~/android下会有一个.repo的隐藏目录。
    5)同步源代码
    $ repo sync
    这一步要很久很久。
    安装linux系统,推荐ubuntu,图形界面
    安装编译需要的支持包
    $ sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
    安装java6.0
    $ sudo apt-get install sun-java6-jdk
    配置java环境
    sudo gedit ~/.bashrc

    末尾加上

    JAVA_HOME=/usr/lib/jvm/java-6-sun
    JRE_HOME=${JAVA_HOME}/jre
    export ANDROID_JAVA_HOME=$JAVA_HOME
    export CLASSPATH=.:${JAVA_HOME}/lib:$JRE_HOME/lib:$CLASSPATH
    export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
    export JAVA_HOME;
    export JRE_HOME;
    export CLASSPATH;
    HOME_BIN=~/bin/
    export PATH=${PATH}:${JAVA_PATH}:${HOME_BIN};
    sudo source ~/.bashrc
    是环境变量生效

    编译android源码,并得到~/android/out目录

    $ cd ~/andoird
    $ make
    这一过程很久。
    这就编译结束了

    5. android源码编译问题

    应该是gcc编译器的版本问题,cm那帮人总喜欢高版本的,你自己用4.8或4.9交叉编译试一下

    6. android编译源码,需要生成odex吗

    不是必须的

    你这是编译源码,只需要编译生成apk就行。
    odex是从apk中提取的可运行文件,是class.dex通过dex优化过程将其优化生成的。主要的是为了提高程序的运行速度,如果没有odex的话,系统要从apk包中提取dex再运行。
    当然如果你想为了刷完机首次进入系统的时间缩短一些,可以生成odex。
    我们当时做手机的时候就是.apk和.odex一起生成的,但是在我们后续系统应用开发的时候都是把odex删了,因为如果我们新推一个系统apk是,原先的odex会和新的系统apk冲突

    7. 如何高效阅读android反编译后的源码

    一、工具准备:apktool , dex2jar , jd-gui
    二、使用dex2jar + jd-gui 得到apk的java源码
    1.用解压工具从 apk包中取出 classes.dex 文件
    用命令(dex2jar.bat classes.dex)得到一个 jar文件
    2.用jd-gui反编译工具将得到.jar文件反编译成.java文件
    三、使用apktool得到apk的xml文件

    1. 用命令(apktool d xxx.apk xxx_xml)反编译xxx.apk包2.从 xxx_xml 文件夹得到xml文件四、第二步 得到的程序源代码 和 第三步 得到的xml文件组合下,即可得到完整的apk源码。

    五、应用: 汉化/去广告,加 values-zh-rCN, values-zh-rTW, values-de, values-fr

    1.在步骤三的文件夹xxx_xml/res/ 下, 建文件夹: values-zh-rCN,values-zh-rTW

    2.1复制valuesstrings.xml 到 values-zh-rCN 并翻译.

    2.2 去广告见;

    3.重建APK,用命令(apktool b xxx) ,输出到ABC/dist/out.apk

    或命令( apktool b xxx out.apk)

    详细代码

    8. 如何搭建android源码编译环境

    1
    编译Android 源代码,Android官方推荐64位的ubuntu系统,最好是10.04的,对于10.10、11.10、12.04版本的ubuntu系统也是可以,但是小编一直习惯使用10.04的,所以几年来一直沿用至今

    请不要使用32位的Ubuntu系统,更不要使用10.04以下的ubuntu系统,不然编译会出现很多都问题,会浪费更多的时间,有的比较难解决,对于新人来说,还不如重新安装一个64位的ubuntu系统

    下面小编来说说怎么样查看当前安装好的ubuntu系统是多少位的
    按照下图所示的方法打开终端,然后输入命令并执行 uname -ar,在最后输出的信息中如果有amd64或者 x86_64 字样,那么就说明是64位的系统了,否则就是32位的系统了

    END
    安装jdk
    1
    jdk的安装,虽然Android官方还是有介绍,现在jdk的安装已经不支持使用添加源,然后用命令安装了,只能取java官网下载jdk,然后安装,然后将jdk的路劲添加到环境变量中,具体的安装和添加变量的方法,可以查看本文参考资料中的文档介绍,这里就不过多说明了

    另外需说明的是,对于2.3版本以后的Android,需要使用jdk6,即jdk1.6,而不要使用jdk1.7的

    2
    对于安装好的jdk,并且添加了环境变量,我们可以输入并执行命令java -version 来查看jdk版本,若是有类似下面的信息输入,那么说明jdk安装成功了

    END
    安装编译所需的工具
    1
    对于10.04的系统,我们只需要安装下面这些软件工具就可以了,直接复制到终端中,然后回车执行安装就ok,安装前保持电脑正常连接网络
    sudo apt-get install git-core gnupg flex bison gperf build-essential \
    zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
    x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
    libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
    libxml2-utils xsltproc

    2
    对于10.10的ubuntu系统,需要先安装下面的工具软件,直接输入执行下面的命令就可以安装:
    sudo apt-get install git-core gnupg flex bison gperf build-essential \
    zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
    x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
    libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
    libxml2-utils xsltproc

    3
    之后使用下面的命令做一个软链接文件:
    sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so

    4
    对于11.10的ubuntu系统,需要先安装下面的工具,输入并执行下面的命令:
    sudo apt-get install git-core gnupg flex bison gperf build-essential \
    zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
    x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
    libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
    libxml2-utils xsltproc

    5
    然后再安装这个对于11.10系统特别需要的工具
    sudo apt-get install libx11-dev:i386

    END
    设置高速缓存加快编译速度
    设置告诉缓存可以加快我们的编译速度,对于配置不是很高的电脑,最好是进行这个设置,这样可以为我们节约很多都时间

    先用vi或者gedit软件打开宿主目录下的.bashrc文件,然后在文件的最后添加:
    export USE_CCACHE=1
    之后保存退出,重新登陆系统,使设置生效

    在终端中,切换到源码根目录中,然后执行下面的命令,设置ccache的大小
    prebuilts/misc/linux-x86/ccache/ccache -M 50G

    其实ccache就是一个执行文件,后面的-M和50G是传递给ccache的参数,表示设置50G的缓存空间,这个大小可以根据我们的时间需要来修改

    9. android编译源码后怎样运行

    编译:
    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

    然后运行模拟器

    热点内容
    内置存储卡可以拆吗 发布:2025-05-18 04:16:35 浏览:333
    编译原理课时设置 发布:2025-05-18 04:13:28 浏览:374
    linux中进入ip地址服务器 发布:2025-05-18 04:11:21 浏览:609
    java用什么软件写 发布:2025-05-18 03:56:19 浏览:29
    linux配置vim编译c 发布:2025-05-18 03:55:07 浏览:104
    砸百鬼脚本 发布:2025-05-18 03:53:34 浏览:940
    安卓手机如何拍视频和苹果一样 发布:2025-05-18 03:40:47 浏览:736
    为什么安卓手机连不上苹果7热点 发布:2025-05-18 03:40:13 浏览:800
    网卡访问 发布:2025-05-18 03:35:04 浏览:507
    接收和发送服务器地址 发布:2025-05-18 03:33:48 浏览:369