说明:NewNetClient是源码目录名称,

当前环境变量设置:jdk,android sdk ,openssl的环境变量。


所需包文件:android.jar,signapk.jar.


C:/apk/hello/gen/android/hello
javac c:/apk/hello/*.java -classpath c:/testapk/android.jar -d c:/apk/classes




@rem主要是重新自动生成R.java文件,比如增加个图片或者字符串或者增加个layout目录xml文件
C:/Users/dell>aapt package -m -J c:/apk/NewNetClient/gen -M c:/apk/NewNetClient/AndroidManifest.xml -S C:/apk/NewNetClient/res -I C:/apk/android.jar

@rem 主要是重新自动生成R.java文件,比如增加个图片或者字符串或者增加个layout目录xml文件
aapt package -m -J src -M C:/apk/NewNetClient/AndroidManifest.xml -S C:/apk/NewNetClient/res -I C:/apk/android.jar

@rem 编译java文件包括R.java 并输出到c:/apk/classes
C:/Users/dell>javac C:/apk/hello/src/android/hello/*.java C:/apk/hello/gen/andro
id/hello/*.java -classpath C:/testapk/android.jar -d c:/apk/classes

@rem 把目录下*.class文件打成jar包,为了后面能够创建apk需要的classes.dex文件(生成的文件在当前目录 *。* 是相对路径)
c:/apk/classes>jar cvf ffff.jar *.*

@rem 把刚才的jar包转换成android手机能够运行的dex文件
c:/apk/classes>dx --dex --output=classes.dex c:/apk/classes/ffff.jar

@rem 如果存在则删除
IF EXIST fffnew3.apk. (
del fffnew3.apk.
echo message ab
) ELSE (
echo fffnew3.apk. missing.
echo message ab c
)

@rem 生成应用程序apk文件ffffqc.apk
c:/apk/classes>aapt package -z -u -f -M C:/apk/hello/AndroidManifest.xml -S C:/apk/hello/res -I C:/testapk/android.jar -F c:/ffffqc.apk

@rem 把前面生成的classes.dex文件压缩到apk文件,最终生成可运行的apk应用程序
c:/apk/classes>aapt add C:/ffffqc.apk classes.dex

@rem 方法一:给生成的apk进行自动签名,无签名的apk是无法安装
c:/testapk>java -jar signapk.jar aimoxiu.x509.pem aimoxiu.pk8 c:/apk/classes/fffnew3.apk fffnew3last.apk
"C:/Program Files/Java/jre6/bin/jarsigner" -verbose -keystore "D:/apksign/MyAnd.keystore" -signedjar %1 %2 "D:/apksign/MyAnd.keystore"


@rem 私钥的生成方式
@rem 产生RSA私钥(private key)
openssl genrsa -3 -out testkey.pem 2048
@rem 产生PKCS#10格式的认证请求。所谓认证请求就是发给认证机构认证的一个请求,它主要包括一个公钥和一些相关信息(如组织名称和联系人邮件地址)。
openssl req -new -x509 -key testkey.pem -out testkey.x509.pem -days 10000 / -subj ‘/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com’
@rem 把私钥的格式转换成PKCS #8(Private-Key Information Syntax Standard.)
openssl pkcs8 -in testkey.pem -topk8 -outform DER -out testkey.pk8 -nocrypt

它的用法如下:
Usage: signapk publickey.x509[.pem] privatekey.pk8 input.jar output.jar
第一个参数是公钥,即前面第二步产生的testkey.x509.pem。
第二个参数是私钥,即前面第三步产生的testkey.pk8。
第三个参数是要签名的文件。
第四个参数是输出的文件(即签名后的文件)。
如:java -jar signapk.jar testkey.x509.pem testkey.pk8 update.zip update-signed.zip


@rem 方法二:keytool生成MyAndf.keystore签名 jarsigner生成签名的apk文件
keytool -genkey -alias MyAndf.keystore -keyalg RSA -validity 20000 -keystore MyAndf.keystore
jarsigner -verbose -keystore MyAndf.keystore -signedjar fffnew3last.apk fffnew3.apk MyAndf.keystore(密码123456 1234567)


开始打包:
javac C:/Users/dell>javac C:/apk/NewNetClient/gen/com/palmdream/NewNetClient/*.java C:/apk/NewNetClient/src/com/palmdream/Core/*.java C:/apk/NewNetClient/src/com/palmdream/ListHolder/*.java C:/apk/NewNetClient/src/com/palmdream/NetEngine/*.java C:/apk/NewNetClient/src/com/palmdream/NewNetClient/*.java C:/apk/NewNetClient/src/com/palmdream/XMLData/*.java C:/apk/NewNetClient/src/org/kxml2/io/*.java C:/apk/NewNetClient/src/org/xmlpull/v1/*.java -classpath c:/apk/android.jar -d c:/apk/classes
echo javac is ok
c:/apk/classes>jar cvf fffnew3.jar com/*.* org/*.*
echo jar cvf is ok
c:/apk/classes>dx --dex --output=c:/apk/classes/classes.dex c:/apk/classes/fffnew3.jar
echo dx --dex ok
c:/apk/classes>aapt package -z -u -f -M C:/apk/NewNetClient/AndroidManifest.xml -S C:/apk/NewNetClient/res -I C:/apk/android.jar -F c:/fffnew3.apk
echo aapt package ok
c:/apk/classes>aapt add C:/fffnew3.apk classes.dex
echo aapt add ok
c:/testapk>java -jar signapk.jar aimoxiu.x509.pem aimoxiu.pk8 fffnew3.apk fffnew3last.apk
echo java last ok
完成


@rem 多线程控制 启动 停止 暂停 启动新的线程 以及联网时header的传递。
@rem 基于android 代码保护

更多相关文章

  1. Android(安卓)ANR 分析流程
  2. Android(安卓)7.1.1 去除Launcher3的抽屉(2018/12/5)
  3. 更新进度条
  4. Android使用post方式上传图片到服务器的方法
  5. Android(安卓)7.0 以上安装Apk适配方案总结
  6. android播放视频和视频做背景
  7. FileObserver的使用
  8. NanoHttpd 构建android 手机端的HttpServer
  9. 存储容量检测 注意构建StatFs对象的参数合法性

随机推荐

  1. 探讨android 导航栏中的recent_app界面
  2. Android中设置文本颜色的三种方法
  3. Unity5 和 Android(安卓)通讯(2)
  4. Android(安卓)Studio常用混淆配置
  5. Android学习笔记系列
  6. Android(安卓)TabWidget/TabHost的使用
  7. Android开发环境搭建
  8. android中eclipse查看源代码
  9. Android(安卓)Studio Gradle Connection
  10. 如何使用APK扩展文件