AOSP之编译

1. 要使用repo,首先需要确保已经安装了Git !!!
2.在根目录创建文件夹

mkdir ~/bin

3.创建一个文件repo

touch repo

4.把repo文件移动到bin文件中去

mv repo ~/bin/repo

5.下载安装清华大学的repo镜像源到bin文件夹中repo文件中去

curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o ~/bin/repo

6.给repo文件或目录添加执行权限

chmod +x \bin/repo

7.将~/bin目录添加到你的PATH环境变量中,以便可以从任何位置调用repo命令

export PATH=$PATH:~/bin

8.更新仓库‌:repo在运行过程中会尝试访问官方的git源更新自己,可以通过设置环境变量REPO_URL来使用镜像源进行更新;如果想使用tuna的镜像源进行更新,可以将该内容复制到你的~/.bashrc中去

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

9.回到要下载仓库的文件夹,初始化仓库‌

repo init -v -u ssh://git仓库 -b 分支名 -m default.xml

10.同步仓库

repo sync

11.Android.bp 以java源码编译apk
android_app {
    name: "myapp",    //编译出的模块的名称,类似于Android.mk中的LOCAL_MODULE
    certificate: "platform",  //是否系统签名
    //不用覆盖签名,使用原本打包的签名,和上面的只能2选一
    //presigned:true,
    
    platform_apis: true,
    sdk_version: "system_current",
    privileged: true,    //是否生成到priv-app目录
    host_supported: true,    //指定模块是否支持主机构建
    device_supported: true,  //指定模块是否支持目标设备构建
    installable: true,   //指定模块是否可以被安装到系统镜像中
    product_specific: true    指定编译出来放在/product/目录下(默认是放在/system目录下)
    vendor: true,  //指定编译出来放在/vendor/目录下(默认是放在/system目录下)
    
    kotlincflags: ["-Xjvm-default=enable"],
    optimize: {     //optimize 用于指定编译时优化选项
        proguard_flags_files: ["app/src/main/proguard.flags"],
    },

    libs: [
       // Soong fails to automatically add this dependency because all the
       // *.kt sources are inside a filegroup.
       "kotlin-annotations",
    ],
    
    srcs: [   //源文件,类似于Android.mk中的LOCAL_SRC_FILES,可以是一个文件列表
        "path/to/your/app/src/**/*.java",
    ],
    resource_dirs: [
        "path/to/your/app/res",
    ],
    manifest: "path/to/your/app/AndroidManifest.xml",
    
    aidl: {
        local_include_dirs: ["SystemUpdaterSDK/src/main/aidl/"],
        
    },
    
    resource_dirs: ["app/src/main/res"],
    
    // "//my/module": 按照Android Gradle构建系统结合bp文件时对于外部库的依赖格式添加
    visibility: ["//my/module:visible_module"],   //visibility:指定模块的可见性,确定哪些模块可以访问它。visibility: invalid visibility pattern "//frameworks/base/" must match //<package>:<module>
, //<package> or :<module>
    
    //加载类库
    shared_libs: ["lib1", "lib2"],  //编译依赖的动态库lib1和lib2
    static_libs: ["lib3", "lib4"],  //编译依赖的静态库lib3和lib4

}
//预编译jar包,加载jar包


java_import {
  name: "libs",
  jars: ["app/libs/rxjava.jar", "app/libs/rxandroid.jar"","app/libs/zxing.jar"],
  srcs: ["src/main/java/*.java"],
  aidl: ["src/main/aidl/*.aidl"],
  deps: ["my_static_library"],  // 假设 my_static_library 就是被标记为 staticlib 的模块,确保名称准确
  compileSdkVersion: 33,
}
12. Android系统源码编译Android.bp文件方式:

(1)在源码release目录,输入 make -j64 “name名称”
(2) cd 到Android.bp模块目录,输入"mm"

系统镜像:out/target/product/msmnile_gvmq/system.img

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值