手动打包apk

来源:互联网 发布:ubuntu系统软件包缺失 编辑:程序博客网 时间:2024/06/11 02:05

用的是 android studio 创建了一个工程,然后手动在命令行打包,进入工程里的

cd ~/Desktop/DexTest/app/src/mainmkdir genmkdir buildmkdir out

sdk 22.以后删除了 apkbuilder,可以在sdk 的 tools 目录里执行:

cat android | sed -e 's/com.android.sdkmanager.Main/com.android.sdklib.build.ApkBuilderMain/g' > apkbuildersudo chmod +x apkbuilder
#手动打包apkSDK=/Users/yzr/Library/Android/sdkBUILD_TOOLS=$(SDK)/build-tools/23.0.3PLATFORMS=$(SDK)/platforms/android-23aapt=$(BUILD_TOOLS)/aapt dx=$(BUILD_TOOLS)/dxaidl=$(BUILD_TOOLS)/aidlapkbuilder=$(SDK)/tools/apkbuilderadb=$(SDK)/platform-tools/adb#资源编译,生成 R.javaaapt_task:    $(aapt) package \    -f \ #如果编译出来的文件已经存在,强制覆盖    -M  AndroidManifest.xml  \ # Mainifest.xml 的路径    -I  $(PLATFORMS)/android.jar \ # 某个版本平台的 android.jar 的路径    -S  res/ \ # res 文件夹路径    -J gen/ \ # 生成 R.java 的输出目录    -m  #使得生成的包的目录放在 -J 参数指定的目录#代码编译,生成 .classjavac_task:    javac -source 1.7 -target 1.7 \ # 使用 jdk1.8 编译 1.7 的 .class 文件    -encoding UTF-8 \     -bootclasspath  $(PLATFORMS)/android.jar \ #覆盖引导类文件的位置    -d build/ \ #指定放置生成的类文件的位置    java/thereisnospon/dextest/*.java \    gen/thereisnospon/dextest/*.java \#生成 .dexdx_task:    $(dx) --dex --output=build/classes.dex \ #输出文件    build   #输入目录#资源文件初始包resapk_task:    $(aapt) package -f \    -M  AndroidManifest.xml  \    -I  $(PLATFORMS)/android.jar \    -S  res/ \    -F  out/pre.apk #将.dex 文件加入到资源文件初始包中apk_task:    $(apkbuilder) out/app.apk \    -v \    -u \    -z out/pre.apk \    -f build/classes.dex \#签名,使用debug的签名signer:    jarsigner -verbose \    -keystore ~/.android/debug.keystore \    -storepass android \    -keypass android \    out/app.apk  androiddebugkey#一次性打包pkg:     make aapt_task    make javac_task    make dx_task    make resapk_task    make apk_task    make signer #卸载apkuninstall:    $(adb) uninstall  thereisnospon.dextest#安装apkinstall:     $(adb) install out/app.apk#运行run:    make pkg     make uninstall    make install    $(adb) shell am start -n thereisnospon.dextest/thereisnospon.dextest.MainActivity  

保存到 src/main 中为 Makefile

执行命令 :

make run
0 0
原创粉丝点击