背景说明

首先需要下载对应的版本的Android源代码(ASOP) 如何下载Android源码

在下载完ASOP后,需要搭建Android的编译环境. 那在Android下如何进行源码代码的编译呢? 请参考官网链接: Android build system usage - 如何进行Android源码的构建

补充说明:
这里没有补充Android源码下载和构建的详细步骤,如有问题请及时留言沟通.

基于ASOP中的external/libcups这一Android下的library进行简单演示

首先可以看下libcups的文件构成,

t@ubuntu:~/ASOP$ ls external/libcups/
Android.bp           config.h             cups/                filter/              .git/                libcups_version      LICENSE.txt          MODULE_LICENSE_LGPL  NOTICE               update_libcups.sh

如上所示,libcups是基于Android.bp 进行构建的. 类似于基于CMake进行构建时依赖的CMakelists.txt, 关于Android.bp 请看之前的文章链接: 【Android】Android.bp 初探

在编译libcups前需要确认下基于Soong的构建环境是否能够正常工作:

t@ubuntu:~/ASOP$ lunch
aosp_arm64-eng              ....

如上所示,运行lunch命令是否成功执行.

然后运行make命令进行指定模块libcups的编译

make libcups
...
[ 90% 9/10] glob system/bt/btcore/include
[  7% 150/2025] Check module type: out/target/product/xxx/obj/SHARED_LIBRARIES/libGLESv1_CM.ndk.18_intermediates/link_type
[100% 2025/2025] build out/target/product/xxx/obj/SHARED_LIBRARIES/libcups_intermediates/libcups.so.toc

编译成功后,会在out/target/product/xxx/system/lib/下生成so库libcups.so

补充说明:
这里make命令的目标libcups是怎么得来的??
这是基于libcups源码下的Android.bp中如下cc_library_shared中的name字段决定的

cc_library_shared {name: "libcups",

【Android】Android.bp 实例之源码编译动态库相关推荐

  1. 【Android NDK 开发】Android Studio 的 NDK 配置 ( 源码编译配置 | 构建脚本配置 | 打包配置 | CMake 配置 | ndkBuild 配置 )

    文章目录 I . 源码编译配置 II . 构建脚本配置 III . NDK 函数库打包配置 IV . Java 与 C 代码示例 V . CMake 配置 ( CMakeLists.txt ) VI ...

  2. python源码编译为库_【Python笔记】如何源码编译依赖LAPACK和ATLAS库的NumPy包

    上篇笔记介绍了不依赖lapack和atlas库的NumPy包源码编译/安装方法,但"纯净版"的NumPy会损失性能,故本篇笔记说明如何源码编译安装依赖lapack和atlas库的N ...

  3. ubuntu16.04源码编译linphone库的过程

    linphone源码下载链接:https://gitlab.linphone.org/BC/public/liblinphone linphone 依赖 belcard belcard 依赖 belr ...

  4. Android 4.1 (Jelly Bean) 源码编译过程总结

    昨天google官方发布了Android 4.1 Jelly Bean的源码,本人第一时间将源码托了下来(托了一个通宵),今天又花了一早上时间编译ROM并刷到自己的Galaxy Nexus中,虽说An ...

  5. 国产系统 统信UOS20 飞腾CPU QT Creator4.14 源码编译

    国产系统 统信UOS20 飞腾CPU  QT Creator4.14 源码编译 系统信息 安装qt5.14 手动编译参考[详细参考另外一篇qt5.14编译] 也可以直接下载已经编译了的[国产系统 统信 ...

  6. Android高版本P/Q/R源码编译指南

           Android高版本P/Q/R源码编译指南 Android源码编译系列博客: Android.bp你真的了解吗 Android.bp入门指南之Android.mk转换成Android.b ...

  7. Android 源码编译及真机刷机实录

    最近接到一个项目,需要接触 Android 源码,所以走了一遍源码编译和刷机的过程,从开始到成功花了差不多一周的时间,踩了很多坑,在此记录一下. 整体分为四个部分: 文章目录 1.环境配置 1.1 创 ...

  8. ubuntu 14.04.5 编译Android 4.4.4 r1源码(最新)

    本文博客链接:http://blog.csdn.net/qq1084283172/article/details/54426189 吐槽:ubuntu系统真是让人又爱又恨,也有可能是VMware Wo ...

  9. Android 源码编译及常见错误及解决方法

    Android 源码编译及常见错误及解决方法 参考文章: (1)Android 源码编译及常见错误及解决方法 (2)https://www.cnblogs.com/kyyblabla/p/360393 ...

最新文章

  1. 【转载】split / break polylines at point intersections
  2. 统计学习:协方差和相关性
  3. 小车故障灯亮显示大全_史上最全汽车故障灯大全,留着一定有用!
  4. 【分享-免费下载】免费下载配乐/视频/平面设计/游戏素材
  5. python 部署模型,关于python:机器学习模型python在线服务部署的两种实例
  6. 覆盖电商、推荐、ETL、风控等多场景,网易的实时计算平台做了啥?
  7. Atitit btree 搜索原理 目录 第一节 左边小右边大 的有序树 1 第二节 平衡算法 1 第三节 层次高度一般3--4层 3 第四节 类似索引 3 第二章 Ref 5 第一节 左边小右
  8. intel 傲腾内存与SSD HDD的对比
  9. 华为全球发布UMTS终端商用新品
  10. python爬腾讯视频地址_腾讯视频爬虫
  11. 运维向运营转型,会是企业IT传统运维的发展方向吗?
  12. php 微信公众号超链接,微信公众帐号开发教程第8篇-文本消息中使用网页超链接_PHP教程...
  13. 瑞士央行干预汇市以遏制瑞士法郎上涨
  14. .Net Entity Framework Core 设置浮点数精度
  15. 转行学Java怎么样?Java培训机构有什么避雷的要点?
  16. Vue基础-vue指令
  17. mac framework
  18. 经典龙格-库塔法(四阶龙格-库塔法)求解求一阶常微分方程相应的特解的Python程序
  19. 有效沟通bic法则_猎头支招:工作中有效沟通的法则
  20. PDF Squeezer for Mac(强大的PDF文件压缩工具)

热门文章

  1. VBA筛选AutoFilter用法
  2. 没想到马斯克魅力如此强大,来中国一趟特斯拉市值一夜就涨1800亿
  3. 如何破解Mac软件的付费限制(一)
  4. bilibili直播间接收监听和发送弹幕api
  5. 穷举法解决鸡兔同笼问题
  6. 如何修复‘Steam需要联机更新‘Mac错误
  7. 经历印度一年中最严重的空气污染是种什么体验? | 经济学人全球早报精选
  8. 《博哥玩Arduino》- 蓝牙七彩灯基础版
  9. win8.1禁用驱动程序强制签名
  10. iOS开发-停止WebView播放视频/音频 1