Android Framework实战预制packages/apps下应用源码预制使用Android.bp方式

RK3588安卓开机自启动:从广播接收到系统服务的完整方案 在嵌入式安卓系统开发中,开机自启动是保障设备功能可靠性的基础需求。其核心原理在于理解安卓系统的启动流程,特别是从Init进程到System Server的初始化顺序,以及关键的ACTION_BOOT_COMPLETED广播发送机制。这一机制的技术价值在于为应用提供了系统就绪后的启动入口,但其在Android 8.0后引入了“应用需至少启动一次”的限制,对RK3588这类常用于商显、工业HMI的无头设备构成了挑战。因此,实现稳定自启动需要综合运用多种技术方案。从基础的静态广播接收器,到监听网络变化的迂回启动, 阅读详情

hi粉丝朋友大家好!
上节课也给大家讲解了Android.mk方式我们桌面把Android Studio的gradle过程桌面预制到了系统源码的packages/apps下面,这里我们来使用Android.bp进行预制,因为现在高版本大部分其实都是使用Android.bp,新版本packages/apps下面android 12几乎看不到Android.mk的身影,所以当然我们也需要与时俱进。但是Android.bp相对来说资料较少,不像以前的Android.mk可以继承很多linux的makefile,所以我这边些Android.bp大部分也只能依葫芦画瓢,参考其他应用怎么写的。

下面开始正题:
源码准备等和Android.mk一样具体可以点击看这里:
https://blog.youkuaiyun.com/learnframework/article/details/124222138
也可以关注看看我的b站视频 https://www.bilibili.com/video/BV1TS4y1e7De/

下面我们其实只需要把原来的Android.mk替换成Android.bp具体Android.bp内容如下:

android_app {
    name: "LegacyEmptyApps",  //要编译生成apk名字,也就单编译模块时候 make LegacyEmptyApps
    srcs: ["app/src/main/java/**/*.java"],//scr路径
	resource_dirs: ["app/src/main/res"],//res路径
	additional_manifests: [ //和Android.mk一样会在根目录也有个AndroidManifest只不过他是个壳,这里这个才是真正的,二者会合并
        "app/src/main/AndroidManifest.xml",
    ],
    libs: ["framework"],//依赖的jar包
    platform_apis: true,//设置该标记后会使用sdk的hide的api來编译。编译的APK中使用了系统级API,必须设定该值。和Android.mk中的LOCAL_PRIVATE_PLATFORM_APIS的作用相同
     certificate: "platform",//代表签名
}

Android系统定制之Android.mk和Android.bp语法详解(精通版).mp4 1.Android系统源码定制和编译方法(Android7.0至Android12) 2.Android.mk和Android.bp语法大全及使用方法详解 3.Android.mk或Android.bp中引用Android的第三方(jar、aar、so)、Androidx的类库等的使用方法 4.Android.mk或Android.bp编译生成Apk、静态库、动态库、可执行文件等的使用方法 5.Android系统定制有源码App或无源码App时关于Android.mk或Android.bp的使用方法 立即下载

相关推荐

sentinel滑动时间窗口算法学习

滑动时间窗口 先不说sentinel的算法实现,先说什么是滑动时间窗口, 我们在进行限流的时候,比如通过QPS进行限流,那假如我们以秒为单位,举个例子: 我设置了限流规则,qps是10 如果不使用滑动窗口算法,在统计qps的时候,就有可能会有问题,比如: 在0 - 500ms中的请求数是0,但是在500ms - 1000 ms的请求数是10;在1000ms - 1500ms 之间又进来了5个请求,此时只判断了1000ms - 2000 ms之间的请求数 因为没有把1S进行拆分多个窗口,所以在1000ms之后

小小少年的博客 3980

Android.bp文件说明

如下为android-13.0.0_r3中packages/apps/WallpaperPicker2/Android.bp的文件内容。这里关于Android.bp文件的说明谷歌官方给出参考,仅用于快速查看,没有进行翻译,详细可以查看对应的。Android.bp是安卓系统,Soong构建系统使用的配置文件。按照上面文件的描述,android_app表示会生成一个apk文件;关于Soong也可以看下这篇网上的。

Pyth_MR 5961

【C++ 使用libxlsxwriter库向excel表格中插入图片 CMake + VS2019】

使用libxlsxwriter向excel表格插入图片

恒星游历者的博客 755

Android.bp详解+入门必备

Android.bp 就是为了用来替换 Android.mk 一个脚本语言文件。如果学习过Android.mk,在学习一下Android.bp应该是很easy的,如果不是很熟悉可以学习了解一下。Android.bp和Android.mk作用都是一样的,在系统源码中用来编译出类库.jar,应用文件.apk,动态库.so,静态库.a作用。其中关键的就是模块类型定义和不同的属性定义。Android.bp文件用类似json的简洁声明来描述需要构建的模块。

wenzhi的博客 1万+

Doris副本修复实战:从状态机到手动修复的完整指南

在分布式数据库系统中,多副本机制是实现高可用与数据一致性的核心技术。其原理是通过在不同节点存储数据的多个拷贝,确保部分节点故障时服务仍可继续。这项技术的核心价值在于保障数据可靠性,并支撑在线分析处理(OLAP)等对数据一致性要求高的应用场景。当副本出现损坏、丢失或版本不一致时,系统通常依赖自动修复机制,但在元数据损坏、多副本同时故障等复杂场景下,自动修复可能失效,需要深入理解副本状态机并借助手动工具介入。本文将聚焦Doris数据库,解析Tablet副本状态流转(如BAD、VERSION_ERROR),并详细

weixin_32288959的博客 461

Deepface实战避坑:人脸识别模型VGG-Face、Facenet、ArcFace怎么选?附各模型性能与速度实测对比

本文深入对比了DeepFace框架中VGG-Face、Facenet和ArcFace三种主流人脸识别模型的性能与适用场景,提供了详细的实测数据和选型建议。通过分析各模型在CPU/GPU环境下的推理速度、内存占用和准确率表现,帮助开发者根据实际需求(如门禁系统、相册分类或视频流分析)选择最优模型,并给出工程化部署的避坑指南和优化技巧。

weixin_42625070的博客 305

【Android.bp介绍】

android.bp android.mk 转换关系

q_2474932226的博客 3596

从理论到实践:Zemax驱动下的离轴三反光学系统全流程构建

本文详细阐述了从理论推导到软件实现的离轴三反光学系统全流程设计方法。文章首先分析了离轴三反系统在空间遥感等领域的优势,然后手把手指导如何基于像差理论计算共轴三反的初始结构参数,包括曲率半径与圆锥系数。最后,重点介绍了在Zemax中完成从共轴建模、视场离轴设置到优化与性能评估的完整实战步骤,为光学工程师提供了宝贵的经验与避坑指南。

weixin_29205061的博客 238

Android 编译的配置文件:android.mk 和android.bp

(android 10 取消这个参数)此参数会影响到库生成后的存放位置.user: 指该模块只在user版本下才编译eng: 指该模块只在eng版本下才编译tests: 指该模块只在tests版本下才编译optional:指该模块在所有版本下都编译Prelink利用事先链接代替运行时链接的方法来加速共享库的加载,它不仅可以加快起动速度,还可以减少部分内存开销,是各种Linux架构上用于减少程序加载时间、缩短系统启动时间和加快应用程序启动的很受欢迎的一个工具。

z755924843的专栏 3130

【读代码】SQLBot:开源自然语言转SQL智能助手原理与实践

SQLBot是 DataEase 团队开源的自然语言转 SQL 智能助手,致力于让非技术用户也能通过自然语言与数据库对话,自动生成 SQL 查询,实现自助数据分析、智能BI问答、报表生成等场景。SQLBot 结合了大语言模型(LLM)、数据库元数据解析、SQL解析与执行等多项技术,具备强大的多数据库适配能力和灵活的扩展性。降低数据分析门槛,让业务人员无需掌握SQL即可获取数据洞察支持多种数据库类型,适应企业多样化数据环境提供可扩展的API和插件机制,便于集成到各类BI、数据平台和业务系统。

kakaZhui的博客 829

【VTKExamples::PolyData】第十六期 GradientFilter

本文分享VTK样例GradientFilter,并解析接口vtkGradientFilter & vtkAssignAttribute,希望对各位小伙伴有所帮助!

qq_40041064的博客 319

Android Framework实战预制packages/apps下应用APK预制使用Android.bp方式

hi粉丝朋友大家好! 以前在android framework入门课讲解过第三方应用apk的预制相关内容,那时候是基于Android 8.1的Android.mk,但大家依旧对Android.bp的预制不知道怎么做,所以很多粉丝经常私下问我,干脆这里给大家blog分享,这里我们来使用Android.bp进行预制,因为现在高版本大部分其实都是使用Android.bp,新版本packages/apps下面android 12几乎看不到Android.mk的身影,所以当然我们也需要与时俱进。但是Android.b

learnframework的博客 3369

SI案例分享--FPC(柔性电路板)信号仿真

设计高性能的柔性PCB时,由于采用了网格地的参考面构造,因此,需要按照特定的结构进行布局,才可以保证所需目标阻抗的稳定性,该结构的配置过程称为“Hatch Configuration”,合理的参数配置将有助于得到满意的设计效果。

一只豌豆象的博客 2828

写给应用开发的 Android Framework 教程——玩转 AOSP 篇之添加可执行程序

本文主要讲解了如何将C/C++ 可执行程序源码Java 可执行程序源码两类模块添加到源码中,以实际操作为主,同学们可以自己实践体验。

yuandaimaahao的博客 822

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Android 之永乐大典

如下编译脚本逻辑,这里通过DISABLE_DEXPREORT_CHECK宏控来失能是否进行DEXPREOPT优化检测,如果为true则失能,默认需要进行优化检测,通过过滤所有PRODUCT_PACKAGES安装的应用,即先过滤ALL_DEFAULT_INSTALLED_MODULES宏控指定列表里面的应用,然后在过滤DEXPREOPT_SYSTEMSERVER_ARTIFACTS列表中指定的需要dexpreort优化的系统jar。Android DexOpt前世今生:参考。

qq_27672101的博客 1899

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Android.bp 语法和使用

Android.bp 语法 Android.mk 转 Android.bp

u012514113的专栏 1万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

安卓源码项目进行gradle编译改造常见问题解决

最近把依赖安卓源码编译环境的多个项目切换到gradle编译环境,需要把一些项目改成lib库依赖,基本思路是把通用的代码和第三方jar放在一个utils库项目中, 其他子项目改为lib库,子项目统一依赖utils,主项目依赖9个子项目,解除子项目对主页面的依赖,最后gradle编译成一个apk。我整理了一些遇到的常见问题,希望对大家有帮助。

西涛offbye-移动全栈技术博客 2297

安卓bp文件详解

Blueprint是生成、解析Android.bp的工具,是Soong的一部分。Soong还会编译生成一个androidmk命令,用于将Android.mk文件转换为Android.bp文件,不过这个转换功能仅限于没有分支、循环等流程控制的Android.mk才有效。Android.bp文件是安卓构建系统(Android Build System)中使用的构建描述文件,它用于定义Android项目中的模块、库、应用等构建规则,该文件使用 Blueprint 语言,是 Soong 构建系统的一部分。

xxdw1992的博客 8414

Android.bp文件详解

Android.bp文件是什么? Android.bp文件首先是Android系统的一种编译配置文件,是用来代替原来的Android.mk文件的。在Android7.0以前,Android都是使用make来组织各模块的编译,对应的编译配置文件就是Android.mk。在Android7.0开始,Google引入了ninja和kati来编译,为啥引入ninja?因为随着Android越来越庞大,module越来越多,编译时间也越来越久,而使用ninja在编译的并发处理上较make有很大的提升。Ninja的配

fanx9339的博客 3万+

Android之Android.bp文件格式语法(一百八十六)

本篇目的:Android之Android.bp文件格式分析。Android.bp(Build Configuration File)是Android编译系统中的一种配置文件格式,用于定义模块(Module)及其依赖关系,以及模块的构建配置选项。Android.bp文件是Android编译系统中的核心部分,它替代了之前的Android.mk文件,提供了更加灵活和高效的模块管理方式。Android.bp文件的基本结构如下:注释:以“//”开头的单行注释,用于说明和描述模块的属性和配置。

Android系统攻城狮 3046

Android.bp 语法浅析-Android10.0编译系统(八)

[Android取经之路] 的源码都基于Android-Q(10.0) 进行分析 [Android取经之路] 系列文章: 《系统启动篇》 Android系统架构 Android是怎么启动的 Android 10.0系统启动之init进程 Android10.0系统启动之Zygote进程 Android 10.0 系统启动之SystemServer进程 Android 10.0 系统服务之ActivityMnagerService Android10.0系统启动之Launcher(桌面)启动流程 And

纸上得来终觉浅,绝知此事要躬行 2579

Android下的联网下载的操作

一:从网络下载图片 MainActivity:     NetService  1.由路径获取Url 2.使用url打开HttpURLConnection连接 3.根据路径查找本地sd卡是否有缓存文件,如果文件存在,发送最后修改时间 File file = new File("/mnt/sdcard/" + URLEncoder.encode(path, "UTF-8")); c

sunalongl的专栏 2162

Android系统Download模块研究

序:Android Download模块主要由两个部分构成:DownloadManager以及DownloadProvider。DownloadManager。 案例解析:默认存储设置为SD卡,重启后进入Play Store,下载apk失败解决方案。

sage_wang的博客 5598

Android从网络上下载文件

现在网络上关于Android下载的代码很多,但是光看还是无法完全理解和掌握,所以决定自己手写一个,以加深学习。 在写下载代码之前,有几点知识必须要掌握: 1.Http请求报文格式及响应报文,可以通过使用wireshark来对报文进行抓取,查看http协议的报文 2.HttpUrlConnection的使用 3.RandomAccessFile类的使用(可断点下载) 这里写的下载是关于断点

Tofun编程之旅 834
上一篇: Android Framework开发之新加一个app源码到packages/apps编译Android.mk配置
下一篇: Android Framework实战预制packages/apps下应用APK预制使用Android.bp方式
千里马学框架
博客等级 码龄6年 1万+粉丝 650原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千里马学框架

帮助你了,就请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值