构建jni_libs
发表于|更新于|系统
|浏览量:
构建jni_libs
- 系统 App 本来就不该用 SDK 模式 —— SDK 模式是给第三方 App 或 SDK 库用的。
| 模式 | 特点 | 可见模块 |
|---|---|---|
| 平台模式(无 sdk_version) | 用于构建系统镜像、系统 App | 可见所有模块,包括 “libc++_shared” |
| SDK 模式(有 sdk_version) | 用于构建面向第三方 App 的库 | 只能依赖 NDK/SDK 公共模块,如 “ndk_libc++_shared” |
文章作者: Fleming Chen
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Fleming's Blog!
相关推荐
2018-06-04
Android开发方向
Android开发方向Android系统开发主要分为两个大的方向:应用开发(上层开发)和系统层开发(底层开发)。每个方向都有其特定的关注点和技术要求。 应用开发方向应用开发者主要关注于用户界面的设计和功能的实现。随着经验的积累,他们可能会转向以下领域: 用户体验设计:专注于用户界面和交互体验的设计。 架构设计:学习并实践不同的软件设计模式,如MVC、MVP、MVVM等,以构建可维护、可扩展的应用程序。 性能优化:掌握如何优化应用性能,包括内存管理、响应速度等方面。 跨平台开发:学习使用Flutter、React Native等技术来创建可以同时运行在Android和iOS上的应用。 特定领域的应用开发:例如音视频开发、游戏开发等。 系统层开发方向系统层开发者则更关注于Android系统的底层实现,包括但不限于: Framework层开发:深入了解Android框架的工作原理,包括Activity Manager Service (AMS)、Window Manager Service (WMS)等核心服务的源码解析。 BSP(Board Support Package)驱动...
2020-12-01
分区镜像刷写规则
分区镜像刷写规则在 Android 开发或系统定制中,修改了哪些代码/模块,就需要刷写对应的镜像分区。这是因为 Android 系统被划分为多个逻辑/物理分区(如 boot、system、vendor、super 等),每个分区承载不同层级的组件。 下面从 代码改动类型 → 对应需要刷写的镜像 进行详细说明: 🧩 一、Android 分区结构简要回顾(Android 10+ 动态分区) 分区 内容 是否可单独刷写(传统) 在动态分区中 boot 内核(kernel) + ramdisk(init、fstab 等) ✅ 是 ✅ 仍独立 system AOSP 核心框架、系统 App(Settings、SystemUI)、Java/Kotlin 代码 ✅(旧)❌(新,合并进 super) 合并到 super vendor 芯片厂商闭源驱动、HAL 实现、专有库(如 camera HAL、audio HAL) ✅(旧)❌(新) 合并到 super product OEM 定制 App、配置(如 Google Pixel 的额外服务...
2025-06-04
开发方向之音视频
开发方向之音视频音视频开发在Android平台上是一个复杂的领域,涉及到多媒体数据的处理、传输和播放等多个方面。以下是针对音视频开发更详细的介绍,包括关键组件、常用框架与库以及一些具体的实现细节。 关键组件 MediaCodec: MediaCodec API允许开发者访问Android设备上的硬件加速编解码器。它支持音频和视频的编码和解码。 开发者可以使用此API来创建高效的媒体应用,如视频编辑器或实时视频通话应用。 MediaExtractor: MediaExtractor用于从媒体文件中提取轨道(音频或视频)。它可以解析多种格式,并提供对媒体数据的直接访问。 适用于需要对媒体内容进行分析或转换的应用场景。 MediaPlayer: MediaPlayer提供了播放本地或网络上的音频和视频的基本功能。它是Android中最简单的播放控制方法。 对于大多数基本的播放需求,MediaPlayer已经足够使用。 AudioTrack/AudioRecord: AudioTrack用于播放PCM格式的音频数据,而AudioRecord用于录制PCM格式...
2020-05-26
Android系统架构
Android系统架构在Android系统架构中,每一层都由多个模块组成,每个模块都有其特定的功能。以下是各层具体模块及其功能的详细介绍: 应用层(Applications) 包含用户直接交互的应用程序,如电话、短信、浏览器、联系人等。 第三方应用程序也是这一层的一部分,使用Java或Kotlin编写。 应用框架层(Application Framework) Activity Manager:管理应用生命周期和常见导航回退功能。 Window Manager:管理所有的窗口程序,提供多屏支持、通知栏信息等功能。 Content Providers:允许应用程序之间访问彼此的数据,例如读取联系人数据。 View System:构建应用程序的基本组件,包括列表、网格、文本框、按钮等UI元素。 Notification Manager:使所有应用可以在状态栏中显示自定义提醒。 Package Manager:负责管理应用程序包相关的操作,比如安装、卸载应用等。 Telephony Manager:提供对设备通话状态的管理和控制。 系统运行库层(Libraries + Androi...
2023-06-04
开发方向之Framework层
开发方向之Framework层Framework层开发是Android系统开发中的一个关键领域,它涉及到对Android框架的理解和定制化修改。这个层次的开发通常需要开发者具备深厚的Java知识以及对整个Android系统架构有全面的理解。以下是关于Framework层开发的一些具体介绍: Android Framework概述Android Framework是位于Linux内核之上的一个抽象层,它为应用程序提供了各种服务和API。这些服务和API使得开发者能够构建丰富的用户界面、处理数据、管理资源等。Framework的核心组件包括Activity Manager Service (AMS)、Window Manager Service (WMS)、Content Providers、View System等。 主要关注点 核心服务:理解并能修改AMS、WMS等核心服务的工作机制对于Framework层开发至关重要。例如,AMS负责管理应用进程的状态,而WMS则负责管理屏幕上的窗口。 IPC(Inter-Process Communication)机制:Android使用B...
2023-09-29
系统服务的实现方式
系统服务的实现方式 方式 实现语言 启动方式 调用方 适用场景 1. Java 系统服务 Java SystemServer 启动 Java 系统 App、SystemUI、Settings 逻辑简单,需与 AMS/PMS 交互 2. Native AIDL 服务 C++ init 启动(.rc) C++(如 frameworks/av)、Java(通过 Binder) 高性能、C++ 实现、跨语言调用 ✅ 3. 传统 Native Binder 服务 C++ init 启动 C++ 老项目、不依赖 AIDL 4. HIDL / AIDL (vendor) C++/Java hwservicemanager vendor HAL、system/vendor 主要用于 HAL 层,不推荐用于 system 内部服务 5. Socket / HAL / 共享内存 C/C++ 自定义 仅限本地进程 低延迟、无 Binder 开销,但不是标准系统服务 ✅ 二、针对你的场景:哪种最合适?你的...
公告
Welcome to my blog!

