等红花 發表於 2022-12-23 15:44:08

uniapp打包安卓App的两种方式(云打包、本地打包)方法详解

<h2>在HBuilder上对APP提供了两种打包方式,云打包和本地打包,下面主要对这两种打包方式做个介绍</h2>
<p>两者的区别:云打包相对简单,但是每天最多只能打包五次,而且在高峰期打包时间可能会很长,本地打包相对比较复杂,但是不限制次数,打包时间也短</p>
<h3>一. uniapp云打包安卓App:</h3>
<p>只需要设置相应参数即可。比较复杂的地方可能就是证书,如果你是测试包,Android的话直接选择共用证书即可,ios则需要申请相应证书,申请证书的具体方法官方也介绍的很清楚了,就不赘述了。</p>
<p style="text-align:center"><img alt="云打包" src="https://img.jbzj.com/file_images/article/202212/202212231540131.png" /></p>
<h3>二. uniapp本地打包安卓App:</h3>
<p>本地打包相对比较麻烦,官网也做了详细介绍,但是感觉不太精简,设置一大堆,看起来也不清晰,所以我在这边大致整理了一下(uni-app安卓打包方式),大致分为底下几个步骤。</p>
<p>需要用到的软件:</p>
<blockquote><p>Android Studio 下载地址:Android Studio官网 OR&nbsp;Android Studio中文社区<br />App离线SDK下载:最新android平台SDK下载</p></blockquote>
<h3>打包步骤</h3>
<p>在 HBuilder 上选择发行 -&gt; 原生App-本地打包 -&gt; 生成本地App打包资源,会在项目里生成一个unpackage的文件夹</p>
<p style="text-align:center"><img alt="生成包文件" src="https://img.jbzj.com/file_images/article/202212/202212231540132.png" /></p>
<p>打开Android studio新建一个空白项目</p>
<p style="text-align:center"><img alt="新建项目" src="https://img.jbzj.com/file_images/article/202212/202212231540133.png" /></p>
<p>因为会自己生成默认属性,Minimum API Level也会选择最新的,所以一路next,Finish就行了</p>
<p>将lib.5plus.base-release.aar、android-gif-drawable-release@1.2.17.aar、uniapp-v8-release.aar和miit_mdid_1.0.13.aar拷贝到libs目录下(这几个包的地址:你下载的App离线SDK -&gt; SDK -&gt; libs)</p>
<p><strong>注意:HBuilderX2.8.0以前需要将uniapp-v8-release.aar替换为uniapp-release.aar</strong></p>
<p style="text-align:center"><img alt="在这里插入图片描述" src="https://img.jbzj.com/file_images/article/202212/202212231540134.png" /></p>
<p>配置build.gradle</p>
<p style="text-align:center"><img alt="build" src="https://img.jbzj.com/file_images/article/202212/202212231540135.png" /></p>
<p style="text-align:center"><img alt="配置" src="https://img.jbzj.com/file_images/article/202212/202212231540136.png" /></p>
<h3>配置应用名称</h3>
<p>打开app-&gt;src -&gt; main -&gt; values -&gt; strings.xml文件,修改&ldquo;app_name&rdquo;字段值,该值为安装到手机上桌面显示的应用名称,建议与manifest.json中name(基础配置中的应用名称)对应。</p>
<p style="text-align:center"><img alt="配置" src="https://img.jbzj.com/file_images/article/202212/202212231540137.png" /></p>
<p>配置应用启动页以及provider节点</p>
<p>将下面的代码添加到Androidmanifest.xml的application节点中(如果存在MainActivity的节点,必须删掉!)</p>
<p>将icon.png(图标)、ic_launcher.png(应用启动页图片)放置到drawable,drawalbe-ldpi,drawable-mdpi,drawable-hdpi,drawable-xhdpi,drawable-xxhdpi文件夹下,不同文件夹下对应不同图片尺寸,(这两个图片名字随意起,与配置处对应即可)</p>
<div class="jb51code"><pre class="brush:xml;">   &lt;activity
            android:name="io.dcloud.PandoraEntryActivity"
            android:launchMode="singleTask"
            android:configChanges="orientation|keyboardHidden|screenSize|mcc|mnc|fontScale|keyboard"
            android:hardwareAccelerated="true"
            android:permission="com.miui.securitycenter.permission.AppPermissionsEditor"
            android:screenOrientation="user"
            android:theme="@style/DCloudTheme"
            android:windowSoftInputMode="adjustResize"&gt;
            &lt;intent-filter&gt;
                &lt;category android:name="android.intent.category.DEFAULT" /&gt;
                &lt;category android:name="android.intent.category.BROWSABLE" /&gt;
                &lt;action android:name="android.intent.action.VIEW" /&gt;
                &lt;data android:scheme="h56131bcf" /&gt;
            &lt;/intent-filter&gt;
      &lt;/activity&gt;
      &lt;!--provider节点必须添加--&gt;
      &lt;provider
            android:name="io.dcloud.common.util.DCloud_FileProvider"
            android:authorities="com.example.myapplication.dc.fileprovider"
            android:exported="false"
            android:grantUriPermissions="true"&gt;
            &lt;meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/dcloud_file_provider" /&gt;
      &lt;/provider&gt;
</pre></div>
<p>配置后的图片以及属性内容</p>
<p style="text-align:center"><img alt="在这里插入图片描述" src="https://img.jbzj.com/file_images/article/202212/202212231540138.png" /></p>
<p>我这边完整的AndroidManifest.xml文件(仅供参考)</p>
<div class="jb51code"><pre class="brush:xml;">&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapplication"&gt;

    &lt;application
      android:allowBackup="true"
      android:icon="@mipmap/icon"
      android:label="@string/app_name"
      android:roundIcon="@mipmap/ic_launcher_round"
      android:supportsRtl="true"
      android:theme="@style/Theme.MyApplication"&gt;
      &lt;activity android:name=".MainActivity"&gt;
            &lt;intent-filter&gt;
                &lt;action android:name="android.intent.action.MAIN" /&gt;

                &lt;category android:name="android.intent.category.LAUNCHER" /&gt;
            &lt;/intent-filter&gt;
      &lt;/activity&gt;
      &lt;activity
            android:name="io.dcloud.PandoraEntry"
            android:configChanges="orientation|keyboardHidden|keyboard|navigation"
            android:label="@string/app_name"
            android:launchMode="singleTask"
            android:hardwareAccelerated="true"
            android:theme="@style/TranslucentTheme"
            android:screenOrientation="user"
            android:windowSoftInputMode="adjustResize" &gt;
            &lt;intent-filter&gt;
                &lt;action android:name="android.intent.action.MAIN" /&gt;
                &lt;category android:name="android.intent.category.LAUNCHER" /&gt;
            &lt;/intent-filter&gt;
      &lt;/activity&gt;
      &lt;activity
            android:name="io.dcloud.PandoraEntryActivity"
            android:launchMode="singleTask"
            android:configChanges="orientation|keyboardHidden|screenSize|mcc|mnc|fontScale|keyboard"
            android:hardwareAccelerated="true"
            android:permission="com.miui.securitycenter.permission.AppPermissionsEditor"
            android:screenOrientation="user"
            android:theme="@style/DCloudTheme"
            android:windowSoftInputMode="adjustResize"&gt;
            &lt;intent-filter&gt;
                &lt;category android:name="android.intent.category.DEFAULT" /&gt;
                &lt;category android:name="android.intent.category.BROWSABLE" /&gt;
                &lt;action android:name="android.intent.action.VIEW" /&gt;
                &lt;data android:scheme="h56131bcf" /&gt;
            &lt;/intent-filter&gt;
      &lt;/activity&gt;
      &lt;!--provider节点必须添加--&gt;
      &lt;provider
            android:name="io.dcloud.common.util.DCloud_FileProvider"
            android:authorities="com.example.myapplication.dc.fileprovider"
            android:exported="false"
            android:grantUriPermissions="true"&gt;
            &lt;meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/dcloud_file_provider" /&gt;
      &lt;/provider&gt;
    &lt;/application&gt;

&lt;/manifest&gt;
</pre></div>
<h3>资源配置</h3>
<p>在main底下创建文件夹,main -&gt; assets -&gt; apps,将打包的文件放入apps文件夹下,将下载的SDK -&gt; assets -&gt; data文件夹拷贝到 main -&gt; assets文件夹下</p>
<p style="text-align:center"><img alt="在这里插入图片描述" src="https://img.jbzj.com/file_images/article/202212/202212231540139.png" /></p>
<p>修改dcloud_control.xml文件</p>
<p style="text-align:center"><img alt="在这里插入图片描述" src="https://img.jbzj.com/file_images/article/202212/2022122315401310.png" /></p>
<p style="text-align:center"><img alt="在这里插入图片描述" src="https://img.jbzj.com/file_images/article/202212/2022122315401311.png" /></p>
<p>最后连接手机,点击运行按钮即可</p>
<p style="text-align:center"><img alt="在这里插入图片描述" src="https://img.jbzj.com/file_images/article/202212/2022122315401312.png" /></p>
<p>如果你想打一个APK的包出来,点击Build -&gt; Build Bundle(s)/APK()s -&gt; Build APK(s)即可</p>
<p style="text-align:center"><img alt="APK" src="https://img.jbzj.com/file_images/article/202212/2022122315401313.png" /></p>
<p>控制台会打印以下内容,看到successfully表示打包成功,点击locate可直接跳转打包好的APK存储的位置</p>
<p style="text-align:center"><img alt="在这里插入图片描述" src="https://img.jbzj.com/file_images/article/202212/2022122315401314.png" /></p>
<p>以上就是uniapp打包安卓App的两种方式(云打包、本地打包)方法详解的详细内容,更多关于uniapp打包安卓App的两种方式方法详解的资料请关注琼殿技术社区其它相关文章!</p>
                           
                            <div class="art_xg">
                              <b>您可能感兴趣的文章:</b><ul><li>利用uniapp开发APP时的调试/安卓打包等详解</li><li>Uniapp前端Wap打包安卓环境部署教程超详细记录</li><li>基于uniapp和Android&nbsp;Studio实现安卓离线打包的完整步骤</li></ul>
                            </div>

                        </div>
                        <!--endmain-->
頁: [1]
查看完整版本: uniapp打包安卓App的两种方式(云打包、本地打包)方法详解