如今随着HTML5和移動端的發展,Hybrid和Web App成為了發展趨勢。本人也發現純源生Android App已經無法滿足日常所需,是以也開始學習了HTML5、CSS和JavaScript等網頁開發的技術。
本人使用的是HBuilder開發工具,它在生成Web App的時候有兩種方式,一種是雲端打包方式,比較簡單,隻要新增賬號後,設定一些id、icon等屬性就可以自動生成一個apk檔案。難點是離線打包方式,也就是使用Android Studio等開發工具進行線下離線打包。本人查了很多資料以及親身測試之後,終于成功的完成了離線打包。下面我介紹下主要流程,供其他開發者參考:
1.首先去官網下載下傳SDK
官網位址http://ask.dcloud.net.cn/article/103
裡面有一個完整的demo: HBuilder-Integrate-AS
使用Android Studio 導入後,基本上就可以獨立運作,運作後是一個官方的demo,裡面的功能很全
2.然後打開HBuilder,導出我們的Web App的相關資源檔案
點選 發行→本地打包→生成本地打包App資源
3.在Android Studio 中建立一個Project,不要選擇任何Activity
4.複制HBuilder-Integrate-AS中 AndroidManifest中的關鍵代碼覆寫到我們建立的Project中
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="true"
android:smallScreens="true"/>
<application
android:name="io.dcloud.application.DCloudApplication"
android:allowBackup="true"
android:allowClearUserData="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:supportsRtl="true">
<!--===========================================廣告聯盟配置相關 開始===================================-->
<activity
android:name="io.dcloud.PandoraEntry"
android:configChanges="orientation|keyboardHidden|screenSize|mcc|mnc|fontScale"
android:hardwareAccelerated="true"
android:screenOrientation="user"
android:theme="@style/TranslucentTheme"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action
android:name="android.intent.action.MAIN"/>
<category
android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<!--開發者須自行配置該字段對應value值,替換appid和adid為自己應用的appid和廣告聯盟會員id,否則可能影響統計結算-->
<!--<meta-data-->
<!--android:name="DCLOUD_STREAMAPP_CHANNEL"-->
<!--android:value="io.dcloud.HelloH5|HelloH5|adid" />-->
<!--===========================================廣告聯盟配置相關 結束===================================-->
</application>
5.然後把剛剛從HBuilder導出的資源檔案複制到Project中
在src目錄的main目錄下,建立assets資源檔案夾,然後建立apps檔案夾,再建立一個【id】檔案夾,這個id必須與manifest.json裡的id一緻,然後把HBuilder的資源檔案夾www複制到該目錄下
6.複制HBuilder-Integrate-AS中assets目錄下的data檔案夾到我們建立的Project中,其中dcloud_control.xml檔案夾裡需要修改appid,也就是剛剛我們第五步提到的檔案夾名稱,appver則是version的name(官方說必須一緻,我自己瞎寫發現也沒有錯,可能這個和版本控制有關)
7.注意,build.gradle中的applicationId需要與manifest中的package保持一緻,否則會出錯
8.在HBuilder-Integrate-AS中的libs檔案夾下找到lib.5plus.base-release.aar檔案,複制到自己的Project中來,并在build.gradle中配置相關資訊
9.這個時候小夥伴們就可以運作自己的APP看看效果了
PS:如果運作App後發現螢幕中出現轉圈圈情況,請仔細注意第5、6、7步驟是否正确,如果有相關的id不一緻,請修正