• Uniapp打包apk,添加/res/raw目录资源


    最近在使用极光推送,想要自定义铃声,极光要求铃声的文件放在/res/raw目录下,这本是很简单的放置操作,却是令我苦恼,因为我是用uniapp项目来开发android的,文件目录跟原生android根本不一样,打包后也只是一个apk,后来网上了解到打包后的apk实际上也是一个压缩包,可以解压的。解压后的文件目录,活脱脱就是原生android。于是,就开始了添加/res/raw目录资源的操作,同时也是一大推的坑。

    一、uniapp打包apk

    如果你还在uniapp社区官网继续寻找“如何添加res/raw文件”的解决问题,我劝你停止,目前为止,uniapp暂不支持此类功能。所以,还是要我们从原生的问题去解决。首先你得先拿到apk,在这里我选择的是自定义调试基座(你可以选择正式包),拿到这个apk后,后面的操作基本上跟Hbuilder打包工具无关了,我理解为这个apk已经跟Hbuilder没有联系了

    二、找到这个apk,并解压

    APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是DalvikVM executes的简称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。Android在运行一个程序时首先需要UnZip,然后类似Symbian那样直接,和Windows Mobile中的PE文件有区别。

    三、 解压的文件里有res文件夹,编辑文件夹

    从上面的文件目录可以看出,就是原生的android开发目录,找到了res目录,添加raw目录和添加资源就变成了很简单。文件添加完毕后,再将这些解压出来的这些文件压缩回去

     然后将后缀名zip改为apk

    四、解压后的apk,签名文件已经失效,需要重新签名

    因为你解压了这apk,就已经是改动了这个apk,导致签名文件失效了,所以手机上无法安装。我们就要对改动后的apk进行重新签名。我用的是jar工具来进行签名的(安装了Java环境)。将压缩得apk解压回去,我们还需要一个无签名的apk,找到目录META-INF,留下MANIFEST.MF这一文件,其余的删除。然后再将这些文件夹压缩回zip,改后缀名apk。一个无签名的apk就有了

     五、jar签名打包

    没安装java的道友,可去官网安装,将一个无签名的apk进行签名,还需要一个自有证书,没有自有证书的朋友也可以参考https://www.cnblogs.com/murenziwei/p/12937512.html,也是需要java环境,为了不出问题的使用jar,我直接找到了java的安装目录,在bin目录下找到了jarsigner.exe,并且在此目录下打开终端,开始进行命令签名

     终端命令很长,但我会一一注释,最终命令:

    ./jarsigner.exe -digestalg SHA1 -sigalg MD5withRSA
    -tsa http://sha256timestamp.ws.symantec.com/sha256/timestamp
    -keystore ./lcqs.keystore -storepass 123456
    -signedjar D:liweilcygunilcqsunpackagedebugandroid_debuglcqsalias.apk D:liweilcygunilcqsunpackagedebugandroid_debugandroid_debug.apk lcqsalias

    参数说明

    ./jarsigner.exe -digestalg SHA1 -sigalg MD5withRSA
    -tsa http://sha256timestamp.ws.symantec.com/sha256/timestamp
    -keystore 自有证书文件路径 -storepass 证书私钥密码
    -signedjar 签名后的apk保存路径 无签名的apk文件路径 别名

    其它参数

    【-digestalg】 摘要算法的名称
    【-sigalg】签名算法的名称
    【-tsa】时间戳机构的位置
    【-alias】别名(证书有一个别名,最好取这个)
    

    签名成功的效果

    不出问题的话,在签名apk保存路径下会生成一个apk,这个apk就可以成功安装了

  • 相关阅读:
    java TopK算法
    夫妻过河问题
    Java中数据存储分配
    STM32与ARM代码执行过程
    C中gets()函数与scanf()函数说明
    MRTG开源监控安装手册
    mysql笔记
    windows调用ubuntu下的sublimeText2环境搭建
    linux性能优化
    测试那些事儿—软测必备的Linux知识(一)
  • 原文地址:https://www.cnblogs.com/murenziwei/p/13036231.html
Copyright © 2020-2023  润新知