![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编译
大秦樗里疾
樗里疾,能打仗能外交。小码农,能写代码能写文章。
展开
-
Android 编译 C 文件报错 fatal error: ‘jni.h‘ file not found
libnativehelper 是 jni.h 所属的 module。场景:添加 cpp 文件编译出 so ,给 app 使用。缺少声明,类似于 Java 里缺少了 import。Android.mk 添加如下。原创 2024-05-28 19:27:47 · 385 阅读 · 0 评论 -
Android.bp 引入jar包、aar
Android.bp 引入jar包、aar 的方法。原创 2024-05-07 20:57:30 · 228 阅读 · 0 评论 -
Android.bp 使用 cflags 规避 unused parameter 报错
Android.bp 编译 c 文件时出现如下错误,解决办法,Android.bp 里添加。意思是这个参数没有用到。原创 2024-03-03 19:08:46 · 553 阅读 · 0 评论 -
Android.bp 和 Android.mk 的对应关系
参考。原创 2023-12-22 14:38:39 · 1153 阅读 · 0 评论 -
Andorid 使用bp或者mk编译C文件生成so
文件夹列表Android.mk 内容如下最终生成 ./out/target/product//system/system_ext/lib64/lib_cmkdemo.so如果去掉 LOCAL_MULTILIB := 64 ,会生成。原创 2023-12-22 12:03:33 · 1183 阅读 · 0 评论 -
Android mk使用小结
mk使用小结原创 2022-08-11 17:16:54 · 1010 阅读 · 0 评论 -
Android make 命令探索
编译 Android aosp 源码的步骤一般为source build/envsetup.shlunch //选择对应的devicemake -j12如果切换了 device 或者代码有改动,一般会执行 make installclean ;make -j12 ,如果编译报错,排除语法问题,则需要 make clean ; make -j12 。这些 make 命令具体做了什么,探索记录下。基于 Android 11 ,make 命令可直接用 m 。涉及的文件:build/soong原创 2022-05-15 17:10:17 · 1840 阅读 · 0 评论 -
Android 源码编译技巧--模块清理
参考之前的 Android 源码编译技巧–模块编译_南国樗里疾的博客-CSDN博客https://blog.csdn.net/weixin_44021334/article/details/106944138。既然有模块编译,应该也有模块清理。Android 源码编译之后,如果有代码更新,一般都是 make installclean 之后再 make ,支持模块编译的话可以模块编译后在线替换,不支持模块编译的话需要重新生成 rom 。make installclean 会清理 app 生成目录原创 2021-06-24 11:56:25 · 3855 阅读 · 0 评论 -
Android 源码编译生成framework.jar
Debug 系统应用时,导入到 AS 会有大量报红代码,基本都是 framework 和新增模块的,需要导入对应的 jar 包才方便代码查看和跳转。一般来说,使用 Android 源码全编译之后,会生成 out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar 。这个就是我们需要的 framework.jar (重命名一下),导入到 AS 里后,相关的代码就不会报红了。但有些代码编译之后没有生成这个,生成的是原创 2021-06-24 11:24:32 · 7165 阅读 · 2 评论 -
Android 源码编译mk里导入androidx下的包
用 AS 生成的工程,默认支持 AndroidX ,用的 UI 控件也是 androidx 包下的。用 Android 源码编译 AS 的工程时,会编译不过,提示缺少 androidx 的包。如使用 AppCompatActivity ,编译时会提示错误: 程序包androidx.appcompat.app不存在需要在 Android.mk 中添加如下,LOCAL_STATIC_ANDROID_LIBRARIES := \ androidx.recyclerview_recyclervi原创 2021-06-12 20:50:27 · 3556 阅读 · 5 评论 -
android mk学习-编译apk文件
基于AN 8.0 ,在 vendor/xxx/common/apps/ 目录新建 Test 文件夹,把 Test.apk 放到 Test 文件夹下,在 Test 文件夹添加 Android.mk ,添加如下内容LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_PROPRIETARY_MODULE := trueLOCAL_MO...原创 2019-12-02 10:20:22 · 1146 阅读 · 0 评论 -
android mk学习-使用源码编译 AndroidStudio 工程
在开发安卓app时,我们通常可以用 AndroidStudio 开发应用,然后 build apk ,以预装的方式放到源码下编译。如果需要用源码来编译 AndroidStudio 工程,该怎么做呢 ?下面来实操学习 android Makefile 的使用。将 AndroidStudio 工程放到源码 device/xxx/commom/apps 目录下,8.0 的放到 vendor/xxx...原创 2019-11-28 16:16:16 · 1504 阅读 · 0 评论 -
Android 源码编译技巧--模块编译
源码全编译基于AN 8.0 ,全编译一般步骤为source jdk_env.shsource build/envsetup.shlunch //选择对应的device或productmake -j8 //数字越大越好,但取决于编译服务器性能模块编译模块编译的好处是不用每次都完整的烧录 rom 到板子上,节省时间。将模块编译生成的文件直接 adb push 或者串口拷贝到板子上就能看到修改效果,方便调试。是否可以模块编译,主要看该模块根目录下是否有 Android.mk原创 2020-06-24 15:56:59 · 4467 阅读 · 0 评论 -
Android 模块编译services在线替换不成功解决办法
如果修改了 frameworks/base/services 目录下的代码,可以通过 make -j12 services 命令单独编译 services ,生成 out/target/product/xxx/system/framework/services.jar 。替换到板子上,修改权限(chmod 644 system/framework/services.jar), reboot 重启就可以了 。今天遇到了替换后没效果的情况,尴尬。解决办法:1.make installclean ;原创 2021-02-03 11:36:27 · 1705 阅读 · 0 评论 -
Android 预编译优化笔记
做 Android 系统开发,碰到了首次开机会很久的问题,这里针对改善措施做下记录。以下修改在 6.0 、8.0 上做过验证,是 OK 的。1.打开预编译优化修改 device/xxx/xxx/BoardConfigCommon.mk ,添加WITH_DEXPREOPT := trueDEX_PREOPT_DEFAULT := nostripping去掉 WITH_DEXPREOPT_BOOT_IMG_ONLY := true#WITH_DEXPREOPT_BOOT_IMG_ONLY :=原创 2020-08-20 21:11:49 · 2704 阅读 · 0 评论