美文网首页
android源码编译以及查看

android源码编译以及查看

作者: 成虫_62d0 | 来源:发表于2021-10-12 13:54 被阅读0次

    Created: October 12, 2021 1:14 PM

    我使用的是 ubuntu20.04 64位系统。

    源码下载

    • 安装repo
    sudo apt install repo -y
    sudo apt-get install curl -y
    
    //配置环境变量
    export PATH=~/.local/bin:$PATH
    
    //如果上面安装不了, 那么自己下载安装
    curl https://https://storage.googleapis.com/git-repo-downloads/repo > ~/.local/bin/repo
    chmod a+x ~/.local/bin/repo
    
    • 配置源

    repo的运行过程会尝试访问官方的git源更新自己,如果想使用tuna的镜像进行更新, 可以将如下内容复制到你的~/.bashrc里:

    export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'
    

    并编辑 ~/.local/bin/repo文件,找到REPO_URL这一行,然后将其内容修改(注释并增加一行)为:

    REPO_URL='https://gerrit-google.tuna.tsinghua.edu.cn/git-repo'

    
    echo "export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'" >> ~/.bashrc
    
    cd ~/document
    mkdir android8source
    cd android8source
    
    • 初始化仓库
    mkdir ~/tabl
    cd ~/tabl
    repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest
    cd ~/tabl/.repo/manifests/
    git branch -a
    

    同步8.1分支

    repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-8.1.0_r2
    

    同步源码到本地

    cd ~/document/android8source
    repo sync
    

    然后慢慢等待,中途可能会出现各种问题,例如repo的问题,一般网络上都会找到解决方案。

    要确保有足够的磁盘空间,一般来说200g的磁盘空间足够了。

    构建

    构建需要openjdk, 本人是自行安装的oracle java,所以还需要安装openjdk并自行配置环境变量。

    • 安装各种依赖
    sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib -y
    sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
    sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
    sudo apt-get install git-core gnupg flex bison gperf build-essential
    sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib
    sudo apt-get install libc6-dev-i386 -y
    sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev
    sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
    sudo apt-get install lib32z-dev ccache
    sudo apt install make make-guile -y
    sudo apt-get install tofrodos -y
    sudo apt-get install python-markdown libxml2-utils xsltproc zlib1g-dev:i386
    

    有的依赖会安装不了, 这时候需要更改源, 或者到网络上寻找其他解决方案。

    • 编译

    修改prebuilts/sdk/tools/jack-admin文件,找到文件中的这一行:
    JACK_SERVER_COMMAND=”java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=LAUNCHER_NAME”

    在 -cp 前加上-Xmx4096m (4096尽量为RAM也就是运行内存或者说swap的一半大小,其实看不见括号这句话也没关系的)如:
    JACK_SERVER_COMMAND=”java -Djava.io.tmpdir=LAUNCHER_NAME”

    cd ~/document/android8source/prebuilts/sdk/tools/
    
    ./jack-admin install-serve jack-launcher.jar jack-server-4.11.ALPHA.jar
    
    cd ~/android8source/
    
    source build/envsetup.sh
    
    lunch aosp_arm64-eng
    
    make -j8
    

    一般顺利的话 几个小时之后就编译成功了。如果报错就需要寻找解决方案。 例如我在编译的时候就报了jack-server相关的问题,最后重新移除,安装,启动就好了。

    androidstudio查看源码

    我们在androidstudio开发的时候,下载源码后,查看只能看到java层的源码,查看c或c++的源码有点不太方便。这时候我们可以自己编译然后导入。

    前提是已经进行过一次完成的编译,不编译是无法进行源码导入的

    cd ~/document/android8source
    mmm development/tools/idegen
    

    这里会报 mmm命令找不到, 我们需要先执行如下命令:

    source ~/document/android8source/build/envsetup.sh
    

    然后再执行

    cd ~/docuemnt/android8source
    mmm development/tools/idegen
    
    

    成功后再执行

    sudo sh ~/document/android8source/development/tools/idegen/idegen.sh
    

    执行后会生成这几个文件 android.iws, android.ipr, android.iml

    然后使用androidstudio file→open 选择android.ipr文件即可

    相关文章

      网友评论

          本文标题:android源码编译以及查看

          本文链接:https://www.haomeiwen.com/subject/qqidoltx.html