IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android 10 根文件系统和编译系统(十六):Android.mk预编译动态库 -> 正文阅读

[移动开发]Android 10 根文件系统和编译系统(十六):Android.mk预编译动态库

?配套系列教学视频链接:

? ? ??安卓系列教程之ROM系统开发-百问100ask


说明

系统:AOSP Android10.0

设备:Android x86模拟器

前言

? ? 预编译本质是通过Android中acp命令来完成拷贝, 将一个文件从一个地方拷贝到另外一个地方, 并且源文件并不需要通过编译器进行编译, 一般都是针对一些二进制文件,比如没有源码的可执行程序,动态库,apk, mp3等等各种文件。Android中有大量这种操作, 如gdbserver, emulator的可执行程序, 高通/MTK不愿意公开的图形处理库。Android.mk中比较关键的一个规则是include $(BUILD_PREBUILT)????????

? ? 在之前的文章中, 我们讲解了将cjson代码编译成静态库, 当然也可以编译成动态库, 本文文章主是讲解将已经编译好的libmycjson.so,直接内置到系统中, 让大家理解,未来如果要将别人提供的so集成系统中去,或者将自己的so给到别人来集成。


一, 内置二进制动态库

在Anroid顶层目录新建mytest/prebuilt/so_prebulit/, 将以下需要预编译的可libmycjson.so放入如下目录,如下所示:

├── arm32
│???└── libmycjson-pre.so
└── x86_64
? ? └── libmycjson-pre.so

二, Android.mk编写

新建mytest/prebuilt/so_prebulit/Android.mk

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := libmycjson-pre

LOCAL_MODULE_CLASS := SHARED_LIBRARIES

LOCAL_SRC_FILES := x86_64/libmycjson-pre.so

LOCAL_MULTILIB := 64

include $(BUILD_PREBUILT)

三,编译

source build/env_setup.sh

lunch??aosp_x86_64-eng

mmm??mytest/prebuilt/so_prebulit/

生成的目标文件有如下:

中间文件:

out/target/product/generic_x86_64/obj/SHARED_LIBRARIES/libmycjson-pre_intermediates/

目标文件:out/target/product/产品名/system/lib64/libmycjson-pre.so

四,总结

当前Android.mk是编译x86_64的,也可以根据自己的情况,编译arm32版本的。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-10-11 17:38:03  更:2021-10-11 17:38:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:29:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码