Android M 6.0 Build about 64-bit (__arm64__)

Android M 的编译

对于新版本的Android系统(6.0 开始 ??),在编译时,支持同时编译出两种CPU架构( 即 32-bit 和 64-bit )的 Binaries,这个被称作 "Multilib build"。

对于 native static libraries 和 shared libraries,编译系统会同时编译出两种架构的 Binary。

PRODUCT_PACKAGES 会决定哪个 Binary 会被放进 System Image。

系统默认是编译 64-bit 的版本,可以通过修改 BoardConfig.mk 文件进行定制。

产品配置 (整个系统)

在BoardConfig.mk中,以下变量可以配置 second CPU architecture 以及 ABI(application binary interface):

TARGET_2ND_ARCH
TARGET_2ND_ARCH_VARIANT
TARGET_2ND_CPU_VARIANT
TARGET_2ND_CPU_ABI
TARGET_2ND_CPU_ABI2

以 build/target/board/generic_arm64/BoardConfig.mk 为例:

TARGET_NO_BOOTLOADER := true
TARGET_NO_KERNEL := true
TARGET_ARCH := arm64
TARGET_ARCH_VARIANT := armv8-a
TARGET_CPU_VARIANT := generic
TARGET_CPU_ABI := arm64-v8a

TARGET_2ND_ARCH := arm
TARGET_2ND_CPU_ABI := armeabi-v7a
TARGET_2ND_CPU_ABI2 := armeabi

如果想改为,默认编译32-bit系统,可以设置以下变量:

TARGET_PREFER_32_BIT := true

在Android.mk中配置模块

在某个模块的 Andorid.mk 中,使用 LOCAL_MULTILIB 变量,可以 override 系统设定的 TARGET_PREFER_32_BIT。

LOCAL_MULTILIB可以设置为:

"both"    // build both 32-bit and 64-bit
"32"       // build 32-bit
"64"       // build 64-bit
"first"     // build for the first arch (32-bit in 32-bit device, 64-bit in 64-bit device)
""           // the default 

还可以使用指定架构的 "LOCAL_MODULE_TARGET_ARCH" 变量来编译指定架构的 Binaries:

LOCAL_MODULE_TARGET_ARCH := arm

参考文献:

https://source.android.com/source/64-bit-builds.html  (请自行FQ~~~)
https://www.ibm.com/developerworks/cn/opensource/os-cn-android-build/  
 
时间: 2024-10-19 10:29:55

Android M 6.0 Build about 64-bit (__arm64__)的相关文章

sublime Text2 2.0.2 build 2221 64位 破解(已测试)

近终于找到  sublime Text2 升级到 2.0.2 build 2221 64位 的破破解 输入注册码就成了 ----- BEGIN LICENSE ----- Andrew Weber Single User License EA7E-855605 813A03DD 5E4AD9E6 6C0EEB94 BC99798F 942194A6 02396E98 E62C9979 4BB979FE 91424C9D A45400BF F6747D88 2FB88078 90F5CC94 1C

Windows环境下Android Studio v1.0安装教程

Windows环境下Android Studio v1.0安装教程 Windows环境下Android Studio v1.0安装教程 准备工具 JDK安装包. 要求:JDK 7以及以上版本. Android Studio安装文件. Windows: exe(包含SDK) (813 MB) exe(不包含SDK) (250 MB) zip (235 MB) Mac dmg (234 MB) zip (233 MB) Linux: zip (233 MB) 说明: 32位系统和64位系统是同一个安

【转】Windows环境下Android Studio v1.0安装教程

原文网址:http://ask.android-studio.org/?/article/9 http://android-studio.org/index.php/docs/experience/158-androidstudio-v1-0-win-install Windows环境下Android Studio v1.0安装教程 准备工具 JDK安装包.要求:JDK 7以及以上版本. Android Studio安装文件. Windows:exe(包含SDK) (813 MB)exe(不包含

cordova+Android Studio 1.0+ionic+win7(转)

转自http://blog.csdn.net/fuyunww/article/details/42216125 目录(?)[-] 在项目目录下执行 a创建工程 b添加平台支持 c添加插件在Android Studio 10可略去 d编译代码 e运行代码 配置ionic 移植到Android Studio 10 至此工程建立完成 1.准备工作 ·        安装JDK1.6+,设置环境变量 JAVA_HOME C:\Program Files\Java\jdk1.5.0_07 CLASSPAT

Windows8下PhoneGap 4 + Android Studio 1.0 + VS2013配置指南

1.准备工作 安装JDK1.6+,设置环境变量 JAVA_HOME C:\Program Files\Java\jdk1.5.0_07 CLASSPATH .;%JAVA_HOME%\lib Path %JAVA_HOME%\bin 安装ANT,设置环境变量 ANT_HOME D:\apache-ant-1.8.2 Path D:\apache-ant-1.8.2\bin 安装Android SDK,设置环境变量 ANDROID_HOME C:\Program Files\Android\sdk

[原]零基础学习SDL开发之在Android使用SDL2.0显示BMP图

关于如何移植SDL2.0到安卓上面来参考我的上一篇文章:[原]零基础学习SDL开发之移植SDL2.0到Android 在一篇文章我们主要使用SDL2.0来加载一张BMP图来渲染显示. 博主的开发环境:Ubuntu 14.04 64位,Eclipse + CDT + ADT+NDK 博主曾经自己使用NDK编译出了libSDL2.so,然后使用共享库的方式来调用libSDL2中的函数,结果发现SDL\src\core\android\SDL_android.c 这个jni函数写的实在是不够自己另外做

Android Studio 3.0 新特性

Kotlin 集成 基于IDEA 2017.1 版本构建 对Android O 的支持 对Java8的支持 新的Android Gradle 插件 Google's Maven repository 新的Android分析器(New Android Profiler) APK 调试器 新的设备文件浏览器 Instant Apps support 布局编辑器改进 新的Android Tings 模板 Layout Inspector改进 APK Analyzer 改进 新的Android模拟器功能

Android Studio 1.0.2项目实战——从一个APP的开发过程认识Android Studio

Android Studio 1.0.1刚刚发布不久,谷歌紧接着发布了Android Studio 1.0.2版本,和1.0.0一样,是一个Bug修复版本.在上一篇Android Studio 1.0.1 + Genymotion安卓模拟器打造高效安卓开发环境,我们介绍了Android开发环境的搭建,今天先来说一下上一篇中大家问道比较多的问题,然后说一些Android Studio的使用技巧.  一.搭建开发环境中遇到的问题及解决办法 1.Genymotion模拟器网络错误 我们顺利的安装完了G

[原]零基础学习SDL开发之在Android使用SDL2.0显示BMP叠加图

关于如何移植在android上使用SDL,可以参考[原]零基础学习SDL开发之移植SDL2.0到Android 和 [原]零基础学习SDL开发之在Android使用SDL2.0显示BMP图 . 在一篇文章我们主要使用SDL2.0来加载一张BMP图来渲染显示,同时叠加一张图作为背景图. 博主的开发环境:Ubuntu 14.04 64位,Eclipse + CDT + ADT+NDK 在前面两篇文章我们知道了如何移植SDL2.0到android上面来,并且可以在Android上面来显示一张图片,这篇