android13源码下编译apk

1.apk源码目录结构:

在android源码下编译apk,apk的目录结构有差异,代码示例可参考:
development/samples/HelloActivity

2.apk在android源码下的编译目录:

apk源码可放在packages/app或vendor下使用mm编译,编译产物位于/out/target/product/system/app下

3.若apk中需要引入androidx:

如果代码依赖appcompat等androidx下的包,无需额外导入对应的jar包,直接通过在Android.mk中添加对应的androidx模块名即可,这些模块在系统源码中都有

如何查找对应androidx模块?【以appcompat为例】

1.在android源码目录下执行
find prebuilts/sdk/ -name Android.bp | xargs grep "name.*appcompat"
2.选择查找结果中的androidx.appcompat_appcompat
3.将其加入到Android.mk:

LOCAL_STATIC_ANDROID_LIBRARIES +=\
            androidx.appcompat_appcompat

注:系统中存在的其他预编译包,也可以用这个方法,若找不到对应的包则可以导入jar包

4.系统源码编译apk的示例Android.bp

package {
        default_applicable_licenses: ["Android-Apache-2.0"],
    }

    android_app {
        name: "HelloActivity",
        // Only compile source java files in this apk.
        srcs: ["src/**/*.java"],
        static_libs: [
        "androidx.core_core",//依赖的androidx库
        "androidx.annotation_annotation",
        ],
        sdk_version: "current",
        dex_preopt: {
        enabled: false,
        },
        certificate: "platform",//系统platform访问权限。如果app需要有这个权限则需添加
    }

其中,对于certificate: "platform",对应的所有值及其区别为:
testkey:普通apk
platform:该apk完成一些系统核心功能。这种方式编译出来的apk所在进程的uid为system
shared:该apk需要和home/contacts进程共享数据
media:该apk是media/download系统中的一环
【同时!!!!】:
如果要让apk有system系统权限!!!在设置了certificate的值之外,还需要在apk对应manifest.xml中添加sharedid属性,示例如下:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
            package="com.android.helloworld"
            android:sharedUserId="android.uid.system">
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,558评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,002评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,024评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,144评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,255评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,295评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,068评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,478评论 1 305
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,789评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,965评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,649评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,267评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,982评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,800评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,847评论 2 351