如何单独编译Android Q源码里面的应用

问题描述

在面对Android系统工作时,很大一部分工作是对一些apk的bug进行修复。如何单独编译修改过的应用,快速进行验证,对提高工作效率非常重要。但是在Android Q中,很多应用都是用Android.bp代替了Android.mk。而且一些应用单独编译,也不会在指定目录生成应用的apk,而是生成dex或者odex格式。

解决方法

对于应用源码根目录里面包含Android.mk的情况,只需要在mk文件中添加:

LOCAL_DEX_PREOPT := false

对于应用源码根目录包含Android.bp的情况,添加:

dex_preopt:{
      enabled: false
   },

以DeskClock里面的源码为例,Android.bp修改如下:

android_app {
   name: "DeskClock",
   resource_dirs: ["res"],
   sdk_version: "current",
   overrides: ["AlarmClock"],
   dex_preopt:{
      enabled: false
   },
   srcs: [
       "src/**/*.java",
       "gen/**/*.java",
   ],
    product_specific: true,
    static_libs: [
        "androidx.annotation_annotation",
        "androidx.collection_collection",
        "androidx.arch.core_core-common",
        "androidx.lifecycle_lifecycle-common",
    ],
}

编译

source和lunch之后,可以直接用:

make DeskClock

生成的目录一般在:

out\target\product\***\system\app
out\target\product\***\system\priv-app
out\target\product\***\system\product\app
out\target\product\***\system\product\priv-app

具体路径在最后的编译成功信息里面会包含。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值