欢迎来到得力文库 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
得力文库 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    ANT、keystore制作 、签名.docx

    • 资源ID:78977311       资源大小:36.88KB        全文页数:17页
    • 资源格式: DOCX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    ANT、keystore制作 、签名.docx

    ANT、keystore制作 、签名一、ANT学习:一,准备antant 官网可下载http:/ant.apache.org/ant 环境配置: 1。解压ant的包到本地目录。 2。在环境变量中设置ANT_HOME,值为你的安装目录。 3。把ANT_HOME/bin加到你系统环境的path。二,详细步骤和说明,这里我们要知道一些Android命令。前提条件已配置好android sdk 环境,所以可以在任意目录下执行android 命令,不然则要切换到 android-sdktools目录下1.创建一个android项目 参数说明:-k /-package 为命名空间(包名)-a /-name 工程名 -p /-path 项目 -t 为目标平台的版本编号例如:C:Documents and SettingsAdministrator>android create project -k com.android.Tank -a Tank -t 4  -p F:tank 列出不同版本平台的对应id编号 android.bat list targets /android list例如:C:Documents and SettingsAdministrator>android.bat list targets 对已经存在的android工程,我们可以update下(修改平台的版本),这样会自动添加build.xml 等ant 的配置文件例如:D:Devandroid-sdk-windowstools>android update project -n LHCLottery -t 4 -p F:LHCLotteryUpdated default.propertiesUpdated local.propertiesAdded file F:LHCLotterybuild.xmlAdded file F:LHCLotteryproguard.cfg编译:直接ant 是不会有文件输出的,所以后面一定要带上参数ant 参数如下:    * debug:带调试用签名的构建    * release:构建应用程序,生成的apk必须签名才可以发布    * install:安装调试构建的包到运行着的模拟器或者设备;    * reinstall    * uninstall开始执行编译:切换到工程目录下:E:MyLiBAndroidAndroidAntMyBoardCastReciver例如(生成调试版本):E:MyLiBAndroidAndroidAntMyBoardCastReciver>ant debug例如(生成未签名版本):E:MyLiBAndroidAndroidAntMyBoardCastReciver>ant release 参考:二、keystore制作 Apk签名首先要有一个keystore的签名用的文件。 keystore是由jdk自带的工具keytool生成的。 具体生成方式参考: 开始->运行->cmd->cd到你安装的jdk的目录里,我的是C:Program FilesJavajdk1.6.0_10bin 然后输入: keytool -genkey -alias asaiAndroid.keystore -keyalg RSA -validity 20000 -keystore asaiAndroid.keystore -alias 后面跟的是别名这里是 asaiAndroid.store -keyalg 是加密方式这里是RSA -validity 是有效期 这里是20000 -keystore 就是要生成的keystore的名称 这里是asiAndroid.keystore /*说明:-genkey 产生密钥       -alias demo.keystore 别名 demo.keystore       -keyalg RSA 使用RSA算法对签名加密       -validity 40000 有效期限4000天       -keystore demo.keystore */然后按回车键 按回车后首先会提示你输入的密码:这个在签名时要用的,要记住 然后会再确认你的密码。 之后会依次叫你输入姓名、组织单位、组织名称、城市区域、省份名称、国家代码(CN)等。 参考:三、开始签名。 在 C:Program FilesJavajdk1.6.0_10bin 还提供一个工具 jarsigner.exe 运行命令给APK签名: jarsigner -verbose -keystore asaiAndroid.keystore -signedjar Lotteryonline_signed.apk LotteryOnline.apk asaiAndroid.keystore -keystore: keystore的名称 LotteryOnline_signed.apk: 签名后的APK LotteryOnline.apk: 签名前的APK /*说明:-verbose 输出签名的详细信息       -keystore  demo.keystore 密钥库位置       -signedjar demor_signed.apk demo.apk demo.keystore 正式签名,三个参数中依次为签名后产生的文件demo_signed,要签名的文件demo.apk和密钥库demo.keystore.*/然后按回车:会要求输入刚才设置的密码,输入后按回车就开始签名了。 参考:打包的主要步骤:1生成R.java类文件:利用ant和命令行使用android SDK提供的aapt.ext程序生成R.java。2将.aidl文件生成.java类文件:利用ant和命令行使用android SDK提供的aidl.exe生成.java文件。3第三步 编译.java类文件生成class文件:利用ant和命令行使用jdk的javac编译java类文件生成class文件。4第四步 将class文件打包生成classes.dex文件:利用ant命令行使用android SDK提供的dx.bat命令行脚本生成classes.dex文件。5第五步 打包资源文件(包括res、assets、androidmanifest.xml等):ant命令行使用Android SDK提供的aapt.exe生成资源包文件。6第六步 生成未签名的apk安装文件:ant和命令行使用android SDK提供的apkbuilder.bat命令脚本生成未签名的apk安装文件。7第七步 对未签名的apk进行签名生成签名后的android文件:ant和命令行使用jdk的jarsigner对未签名的包进行apk签名。8第八步 安装和卸载APK文件,利用ant命令行使用Android SDK提供的adb.exe。参考:使用ant优化android项目编译速度 提高工作效率在通常的Android大中型项目开发中,使用Eclipse进行android项目的开发有如下不便之处:1、Android项目编译周期长,编译项目命令取消困难2、在进行Android项目的编译的同时,Eclipse锁定工作区不能进行修改操作3、在只进行资源文件的修改时,Eclipse对资源文件的修改会导致整个项目的编译,在无法打开自动编译模式下,极为不便对项目进行分包处理后,android编译速度极慢。对于我们现在的项目,在未进行分包时编译一次大约需要4、5分钟而有时候你只是简单的修改了一下java文件。进行分包后,编译整个项目时长达到10分以上,有时甚至造成eclipse假死严重的损耗了工作时间和降低工作效率。对于一个android项目而言,其编译流程大致如下                                                      针对现在生成项目速度慢的状况,发现android 项目编译时对资源文件的操作占大量时间。Eclipse默认编译流程会有两次aapt调用。每次时间约四分钟。针对我们进行android项目开发时的经验,有以下几种情况:1、频繁更改资源文件,在类中需要引用资源但不用生成apk2、频繁修改java类文件,资源文件不变,需要生成apk3、次数很少的同时修改资源文件和java类文件,同时生成apk使用ant build 脚本实现将二次资源文件的操作分开,可以良好改善编译速度,提高工作效率(至少一半)。在ant脚本编译模式下,对于以上三种情况:1、在只有资源文件更改的情况 :使用命令 ant generateR 只更新R文件 耗时 约4mins2、在没有更新资源文件后,只修改JAVA类,使用 ant simpledebug 忽略资源文件R引用的更新,并打包 耗时 约5mins3、更新了资源文件,又修改了JAVA文件想立即打包则使用ant debug 此为Eclipse默认模式,时长 大约10minus -_-|详细参考:ANT学习、keystore制作,APK签名(二)今天研究了下build.xml,简单总结下。收获:1、修改build.properties文件,例如:#  'source.dir' for the location of your java source folder and#  'out.dir' for the location of your output folder.# You can also use it define how the release builds are signed by declaring# the following properties:#  'key.store' for the location of your keystore and#  'key.alias' for the name of the key to use.# The password will be asked during the build when you use the 'release' target.#sdk路径,签名路径,密码等key.store=F:/android123.keystorekey.alias=android123key.store.password=key.alias.password=然后运行命令:ant release直接生成签名的安装包。2、发现一个奇怪问题用keytool制作keystore,然后配置上面说到的文件,发现总是报错:找不到证书链。然而用signjar签名去签名,貌似又没问题,不知道为什么。用eclipse制作的key,然后配置上面说到的文件,又没问题。注意一点:keytool制作的key文件都有后缀(.keystore);eclipse制作的key文件没有意外收获:setup WARNING: No minSdkVersion value set. Application will install on all Android versions.为什么我的jdk1.6 安装完之后不用配置环境变量就可以在dos下运行java命-用jdk的安装向导安装的时候 ,会自动把java.exe等几个文件复制到windows目录下,windows目录本来就是在path里的Android Ant<?xml version="1.0" encoding="UTF-8"?><project name="onewayonelife" default="release" basedir="."><!- 环境变量 -><property environment="env" /><!- 应用的名称 -><property name="appName" value="$ant.project.name" /><!- 应用的包目录 -><property name="appPackage" value="org.wp.activity" /><!- SDK目录(获取操作系统环境变量ANDROID_SDK_HOME的值) -><property name="sdk-folder" value="$env.ANDROID_SDK_HOME" /><!- SDK中tools目录 -><property name="sdk-tools" value="$sdk-foldertools" /><!- SDK指定平台目录 -><property name="sdk-platform-folder" value="$sdk-folderplatformsandroid-8" /><!- SDK指定平台的tools目录 -><property name="sdk-platform-tools" value="$sdk-folderplatform-tools" /><!- 使用到得命令 -><property name="aapt" value="$sdk-platform-toolsaapt.exe" /><property name="aidl" value="$sdk-platform-toolsaidl.exe" /><property name="dx" value="$sdk-platform-toolsdx.bat" /><property name="apkbuilder" value="$sdk-toolsapkbuilder.bat" /><property name="jarsigner" value="$env.JAVA_HOMEbinjarsigner.exe" /><property name="zipalign" value="$sdk-toolszipalign.exe" /><property name="adb" value="$sdk-toolsadb.exe" /><!- 生成R文件的相对目录 -><property name="outdir-gen" value="gen" /><!- 编译后的文件放置目录 -><property name="outdir-bin" value="bin" /><!- 生成class目录 -><property name="outdir-classes" value="$outdir-bin" /><property name="outdir-classes-ospath" value="$basedir$outdir-classes" /><!- 资源文件目录 -><property name="resource-dir" value="res" /><property name="assets-dir" value="assets" /><!- 配置清单文件 -><property name="android-manifest-xml" value="AndroidManifest.xml" /><!- 编译时需要的jar,如果项目需要使用到地图服务则需要maps.jar -><property name="android-jar" value="$sdk-platform-folderandroid.jar" /><property name="android-maps-jar" value="$sdk-folderadd-onsaddon_google_apis_google_inc_8libsmaps.jar" /><!- 编译aidl文件所需的预处理框架文件framework.aidl -><property name="framework-aidl" value="$sdk-platform-folderframework.aidl" /><!- Java源文件目录 -><property name="srcdir" value="src" /><property name="srcdir-ospath" value="$basedir$srcdir" /><!- 外部类库所在目录 -><property name="external-lib" value="lib" /><property name="external-lib-ospath" value="$basedir$external-lib" /><!- proguard所在目录 -><property name="proguard-dir" value="proguard" /><property name="proguard-lib" value="$proguard-dirproguard.jar" /><property name="unoptimized" value="$proguard-dirunoptimized.jar" /><property name="optimized" value="$proguard-diroptimized.jar" /><!- classes.dex相关变量 -><property name="dex-file" value="classes.dex" /><property name="dex-path" value="$outdir-bin$dex-file" /><property name="dex-ospath" value="$basedir$dex-path" /><!- 经过aapt生成的资源包文件 -><property name="resources-package" value="$outdir-binresources.ap_" /><property name="resources-package-ospath" value="$basedir$resources-package" /><!- 未签名apk包 -><property name="out-unsigned-package" value="$outdir-bin$appName-unsigned.apk" /><property name="out-unsigned-package-ospath" value="$basedir$out-unsigned-package" /><!- 证书文件 -><property name="keystore-file" value="$basedirkeystorewp.keystore" /><!- 已签名apk包 -><property name="out-signed-package" value="$outdir-bin$appName-signed.apk" /><property name="out-signed-package-ospath" value="$basedir$out-signed-package" /><!- 优化后apk包 -><property name="out-zipalign-package" value="$outdir-bin$appName.apk" /><property name="out-zipalign-package-ospath" value="$basedir$out-zipalign-package" /><target name="init"><echo>$appName</echo><echo>$appPackage</echo><echo>$sdk-folder</echo><echo>$sdk-tools</echo><echo>$sdk-platform-folder</echo><echo>$sdk-platform-tools</echo><echo>$aapt</echo><echo>$aidl</echo><echo>$dx</echo><echo>$apkbuilder</echo><echo>$jarsigner</echo><echo>$zipalign</echo><echo>$adb</echo><echo>$outdir-gen</echo><echo>$outdir-bin</echo><echo>$outdir-classes</echo><echo>$outdir-classes-ospath</echo><echo>$resource-dir</echo><echo>$assets-dir</echo><echo>$android-manifest-xml</echo><echo>$android-jar</echo><echo>$android-maps-jar</echo><echo>$framework-aidl</echo><echo>$srcdir</echo><echo>$srcdir-ospath</echo><echo>$external-lib</echo><echo>$external-lib-ospath</echo><echo>$proguard-dir</echo><echo>$proguard-lib</echo><echo>$unoptimized</echo><echo>$optimized</echo><echo>$dex-file</echo><echo>$dex-path</echo><echo>$dex-ospath</echo><echo>$resources-package</echo><echo>$resources-package-ospath</echo><echo>$out-unsigned-package</echo><echo>$out-unsigned-package-ospath</echo><echo>$keystore-file</echo><echo>$out-signed-package</echo><echo>$out-signed-package-ospath</echo><echo>$out-zipalign-package</echo><echo>$out-zipalign-package-ospath</echo></target><target name="initDir" depends="init"><echo>初始化文件夹.</echo><delete dir="$outdir-classes" /><mkdir dir="$outdir-classes" /><echo>初始化文件夹完成.</echo></target><!- 根据工程中的资源文件生成R.java文件 -><target name="gen-R" depends="initDir"><echo>生成R.java文件.</echo><exec executable="$aapt" failonerror="true"><arg value="package" /><!- 输出详细内容 -><arg value="-v" /><!- 强制覆盖已存在的文件 -><arg value="-f" /><!- 在-J指定的位置下生成相应的包的目录 -><arg value="-m" /><!- 指定R.java文件生成的目录 -><arg value="-J" /><arg value="$outdir-gen" /><!- 指定资源文件目录 -><arg value="-S" /><arg value="$resource-dir" /><!- 指定assets文件目录 -><arg value="-A" /><arg value="$assets-dir" /><!- 指定配置清单文件 -><arg value="-M" /><arg value="$android-manifest-xml" /><!- 引入类库 -><arg value="-I" /><arg value="$android-jar" /></exec><echo>R.java文件生成完成.</echo></target><!- 编译aidl文件 -><target name="aidl" depends="gen-R"><echo>开始编译.aidl文件为.java文件.</echo><apply executable="$aidl" failonerror="true" verbose="true"><!- aidl声明的目录 -><arg value="-I$srcdir" /><!- 指定预处理文件 -><arg value="-p$framework-aidl" /><!- 目标文件目录 -><arg value="-o$outdir-gen" /><!- 指定哪些文件需要编译 -><fileset dir="$srcdir"><include name="*/*.aidl" /></fileset></apply><echo>aidl文件编译完成.</echo></target><!- 将工程中的java源文件编译成class文件 -><target name="compile" depends="aidl"><echo>编译Java源文件.</echo><!- bootclasspath 指定引导类文件的位置-><javac encoding="GB18030" target="1.6" srcdir="." destdir="$outdir-classes" bootclasspath="$android-jar" verbose="true"><classpath><fileset dir="$external-lib" includes="*/*.jar" /><filelist><file name="$android-maps-jar" /></filelist></classpath></javac><echo>Java源文件编译完成.</echo></target><!- 将class文件进行混淆 -><target name="optimize"><echo>开始进行代码混淆.</echo><jar basedir="$outdir-classes" destfile="$unoptimized" /><java jar="$proguard-lib" fork="true" failonerror="true"><!- Dmaximum.inlined.code.length 默认值为8 设置内联代码的长度 -><jvmarg value="-Dmaximum.inlined.code.length=32" /><!- 指定配置文件 -><arg value="proguard.cfg" /><arg value="-injars $unoptimized" /><arg value="-outjars $optimized" /><arg value="-libraryjars $android-jar" /><arg value="-libraryjars $android-maps-jar" /><arg value="-libraryjars $external-libcore.jar " /></java><delete dir="$outdir-classes" /><mkdir dir="$outdir-classes" /><unzip src="$optimized" dest="$outdir-classes" /><delete file="$unoptimized" /><delete file="$optimized" /><echo>代码混淆完成.</echo></target><!- 将.class文件转化成.dex文件 -><target name="dex" depends="compile, optimize"><echo>编译文件和引用类库转化为.dex文件.</echo><exec executable="$dx" failonerror="true"><arg value="-dex" /><arg value="-verbose" /><arg value="-output=$dex-ospath" /><!- 要生成.dex文件的源classes和libraries -><arg value="$outdir-classes-ospath" /><arg value="$external-lib-ospath" /></exec><echo>.dex文件转换完成.</echo></target><!- 将资源文件放进输出目录 -><target name="package-res-and-assets"><echo>开始转化资源文件.</echo><exec executable="$aapt" failonerror="true"><arg value="package" /><!- 输出详细内容 -><arg value="-v" /><!- 强制覆盖已存在的文件 -><arg value="-f" /><!- 指定资源文件目录 -><arg value="-S" /><arg value="$resource-dir" /><!- 指定assets文件目录 -><arg value="-A" /><arg value="$assets-dir" /><!- 指定配置清单文件 -><arg value="-M" /><arg value="$android-manifest-xml" /><!- 引入类库 -><arg value="-I" /><arg value="$android-jar" /><!- 指定要生成的包 -><arg value="-F" /><arg value="$resources-package" /></exec><echo>资源文件转化完成.</echo></target><!- 打包成未签名的apk -><target name="package" depends="dex, package-res-and-assets"><echo>开始打包未签名程序.</echo><exec executable="$apkbuilder" failonerror="true"><arg value="$out-unsigned-package-ospath" /><!- 输出详细内容 -><arg value="-v" /><!- 创建未签名程序 -><arg value="-u" /><!- 指定dex文件添加到应用程序包中 -><arg value="-f" /><arg value="$dex-ospath" /><!- 指定资源文件添加到应用程序包中 ->

    注意事项

    本文(ANT、keystore制作 、签名.docx)为本站会员(飞****2)主动上传,得力文库 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知得力文库 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于得利文库 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

    © 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

    黑龙江省互联网违法和不良信息举报
    举报电话:0468-3380021 邮箱:hgswwxb@163.com  

    收起
    展开