Android 签名与对齐相关知识详解
2017-06-30 11:12
204 查看
Android 签名与对齐相关知识详解
1 什么是Android 应用的签名–Android 要求所有 APK 必须先使用证书进行数字签署,然后才能安装。在签署 APK 时,签署工具会将公钥证书附加到 APK。公钥证书充当“指纹”,用于将 APK 唯一关联到对应私钥。这有助于 Android 确保您 APK 的任何将来更新都是原版更新并来自原始作者。
简而言之,签名机制可以让系统知道当前apk的作者是谁。
2 IDE自动签名
从 IDE 中运行或调试项目时,Android Studio 将自动使用通过 Android SDK 工具生成的调试证书签署 APK。当您在 Android Studio 中首次运行或调试项目时,IDE 将自动在
$HOME/.android/debug.keystore 中创建调试密钥库和证书,并设置密钥库和密钥密码。
3 自定义签名
使用 Android Studio 生成应用签名或上传密钥,步骤如下:
在菜单栏中,点击 Build > Generate Signed APK。
从下拉菜单中选择一个模块,然后点击 Next。
点击 Create new 以创建一个新密钥和密钥库。
在 New Key Store 窗口上,为您的密钥库和密钥提供所需信息
密钥库
Key store path:选择创建密钥库的位置。
Password:为您的密钥库创建并确认一个安全的密码。
密钥
Alias:为您的密钥输入一个标识名。
Password:为您的密钥创建并确认一个安全的密码。此密码应当与您为密钥库选择的密码不同
Validity (years):以年为单位设置密钥的有效时长。密钥的有效期应至少为 25 年,以便您可以在应用的整个生命期内使用相同的密钥签署应用更新。
Certificate:为证书输入一些关于您自己的信息。此信息不会显示在应用中,但会作为 APK 的一部分包含在您的证书中。
填写完表单后,请点击 OK。
4 自动签署您的 APK
在 Project 窗口中,右键点击您的应用并点击 Open Module Settings。
在 Project Structure 窗口左面板中的 Modules 下,点击您想要签署的模块。
点击 Signing 标签,然后点击 Add。 。
选择您的密钥库文件,为此签署配置输入一个名称(因为您可能创建多个配置),然后输入所需的信息。
点击 Build Types 标签。
点击 release 构建。
在 Signing Config 下,选择您刚创建的签署配置。
5 优化apk包大小:对齐
zipalign 可以确保所有未压缩的数据的开头均相对于文件开头部分执行特定的字节对齐,这样可减少应用消耗的 RAM 量。
Zipalign对apk文件中未压缩的数据在4个字节边界上对齐,当资源文件通过内存映射对齐到4字节边 界时,访问资源文件的代码才是有效率的。4字节对齐后,android系统就可以通过调用mmap函数读取文件,进程可以像读写内存一样对普通文件的操 作,系统共享内存IPC,以在读取资源上获得较高的性能。 如果资源本身没有进行对齐处理,它就必须显式地读取它们——这个过程将会比较缓慢且会花费额外的内存。
在4个字节边界上对齐的意思就是指编译器吧4个字节作为一个单位来进行读取的结果,这样的话,CPU能够对变量进行高效、快速的访问(较之前不对齐)。
相关文章推荐
- Android应用程序签名相关的理论知识,包括:什么是签名、为什么要给应用程序签名、如何给应用程序签名等。
- Android签名相关知识整理
- Android Loop MessageQune Message Handler 相关知识详解
- Android应用程序签名步骤及相关知识介绍
- Android签名相关知识整理
- Android应用程序签名相关的理论知识
- Android签名相关知识整理
- Android应用程序签名相关的理论知识,包括:什么是签名、为什么要给应用程序签名、如何给应用程序签名
- 关于Android初学者的学习线路的相关知识
- 一定要看的 Android 资源目录的相关知识 raw drwable values
- Android 签名详解
- Android相关知识集合
- 【转】Android 签名详解
- 一定要看的 Android 资源目录的相关知识
- 一定要看的 Android 资源目录的相关知识 raw drwable values
- Android应用签名详解 Eclipse+ADT
- Android应用程序签名详解
- Android使用Ant自动编译签名打包详解
- eclipse+ADT 进行android应用签名打包详解
- android.os.handler相关知识整理