【杂七杂八】Eclipse中打包Android工程生成apk

来源:互联网 发布:快速排序的算法 编辑:程序博客网 时间:2024/05/01 18:54
环境:Windows 7,Eclipse

以下内容摘自http://www.cnblogs.com/tianguook/archive/2012/09/27/2705724.html

生成apk最懒惰的方法
只要你运行过android项目,到工作目录的bin文件夹下就能找到与项目同名的apk文件,这种apk默认是已经使用debug用户签名的。

为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序,我们需要对我们发布的apk文件进行唯一签名,保证我们每次发布的版本的一致性(如自动更新不会因为版本不一致而无法安装)。所以,如果想要自己给apk签名具体操作流程如下

〖方法一〗使用Eclipse导出带签名的apk
1. 右击Android工程,选择"Export",弹出如下所示对话框,选择"Export Android Application"
2. 一直选择Next直到如下图所示的对话框,第一次打包时,选择Create new keystore,选择一个Location(如:E:\xt.keystore),输入密码,要记住密码,之后会用到。
3. 填写密钥库信息,使用期限和组织单位的信息。这里的密码可以与上一步中的密码不一样,也要记住,之后会用到。
4. 生成带签名的apk文件,到此就结束了。
5. 如果下次发布版本的时候,第2步就选择Using existing keystore,使用已经有的keystore签名,填写的密码是第2步里设置的密码。
如下图所示对话框填写的就是第3步设置的密码。
〖方法二〗命令行下对apk签名(原理):详见文章开头链接
〖方法三〗使用IntelliJ IDEA导出带签名的apk:详见文章开头连接


签名对App的影响
你不可能只做一个APP,你可能有一个宏伟的战略工程,想要在生活,服务,游戏,系统各个领域都想插足的话,你不可能只做一个APP,谷歌建议你把你所有的APP都使用同一个签名证书。使用你自己的同一个签名证书,就没有人能够覆盖你的应用程序,即使包名相同,所以影响有:
  • App升级。使用相同签名的升级软件可以正常覆盖老版本的软件,否则系统比较发现新版本的签名证书和老版本的签名证书不一致,不会允许新版本安装成功的。
  • App模块化。android系统允许具有相同的App运行在同一个进程中,如果运行在同一个进程中,则他们相当于同一个App,但是你可以单独对他们升级更新,这是一种App级别的模块化思路。
  • 允许代码和数据共享。android中提供了一个基于签名的Permission标签。通过允许的设置,我们可以实现对不同App之间的访问和共享:AndroidManifest.xml:。其中protectionLevel标签有4种值:normal(缺省值),dangerous, signature,signatureOrSystem。简单来说,normal是低风险的,所有的App不能访问和共享此App。dangerous是高风险的,所有的App都能访问和共享此App。signature是指具有相同签名的App可以访问和共享此App。signatureOrSystem是指系统image中App和具有相同签名的App可以访问和共享此App,谷歌建议不要使用这个选项,因为签名就足够了,一般这个许可会被用在在一个image中需要共享一些特定的功能的情况下。
====================================华丽丽的分割线===================================
以下内容摘自http://www.eoeandroid.com/thread-313531-1-1.html

Android打包常见错误之Export aborted because fatal lint errors were found
有时会碰到如下错误:
Export aborted because fatal lint errors were found. These are listed in the Lint View. Either fix these before running Export again,or turn off"Run full error check when exporting app" in the Android > Lint Error Checking preference page. 
解决方法如下: 
1. 右击Android,选择"Properties",在弹出的对话框里选择Adnroid Lint Preferences->Configure Workspace Settings...。
2. 弹出Preferences(Filtered)对话框,将"Run full error check when exporting app and abort if fatal errors are found "前的勾去掉,点击Apply再点击OK。
3. 回到项目右击选择Android Tools->Clean Lint Markers,待项目自己更新完成即可,这时就可以打包了。
 
====================================华丽丽的分割线===================================
以下内容摘自http://kinggoo.com/zipalign.htm,有关对齐优化的知识详见链接。

签名之后,用zipalign(压缩对齐)优化apk
如果apk是在Eclipse中按照上面提到的步骤生成的,已经被自动对齐,无需手动优化。手动优化的方法如下。
进入到sdk的tools下,检查apk是否已优化:
F:\android-sdk-windows\tools zipalign -c -v 4  xt.apk

如果输入的数据后面都是 (OK – compressed)或(OK),则无需优化。如果是 -1 等字符,则需要进行优化:
F:\android-sdk-windows\tools zipalign -v 4  xt.apk xt2.apk
其中xt.apk是原包,xt2.apk是生成包。
1 0
原创粉丝点击