手动打包apk

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

cd ~/Desktop/DexTest/app/src/main
mkdir gen
mkdir build
mkdir out

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

cat android | sed -e 's/com.android.sdkmanager.Main/com.android.sdklib.build.ApkBuilderMain/g' > apkbuilder
sudo chmod +x apkbuilder
#手动打包apk


SDK=/Users/yzr/Library/Android/sdk
BUILD_TOOLS=$(SDK)/build-tools/23.0.3
PLATFORMS=$(SDK)/platforms/android-23
aapt=$(BUILD_TOOLS)/aapt 
dx=$(BUILD_TOOLS)/dx
aidl=$(BUILD_TOOLS)/aidl
apkbuilder=$(SDK)/tools/apkbuilder
adb=$(SDK)/platform-tools/adb

#资源编译,生成 R.java
aapt_task:
    $(aapt) package \
    -f \ #如果编译出来的文件已经存在,强制覆盖
    -M  AndroidManifest.xml  \ # Mainifest.xml 的路径
    -I  $(PLATFORMS)/android.jar \ # 某个版本平台的 android.jar 的路径
    -S  res/ \ # res 文件夹路径
    -J gen/ \ # 生成 R.java 的输出目录
    -m  #使得生成的包的目录放在 -J 参数指定的目录

#代码编译,生成 .class
javac_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 \

#生成 .dex
dx_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 


#卸载apk
uninstall:
    $(adb) uninstall  thereisnospon.dextest


#安装apk
install: 
    $(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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值