找回密码
 立即注册

QQ登录

只需一步,快速开始

Android创建最精简离线打包工程

本文以Android Studio为例讲解如何一步步创建一个最精简的5 SDK工程,如果还需要在工程中添加更多的扩展插件,可以参考SDK内附带的Feature-Android.xls文件,文件中有扩展插件和需要添加的配置
1 创建Android原生工程
首先创建一个空的Android Studio工程
打开AndroidStudio点击File->New->New Project
3b8d41fde6e6e2b94871d7477f8801e9.png
c040af986917c0cf3115cba6c7e2fa6c.png
然后一路点击“next”到下面这个页面点击“finish”即可
a56feca3ed5d050762df765c140052d7.png
2 添加5 SDK需要使用的jar包到工程
原生工程中使用5 SDK必须要在工程中添加如下几个jar
  • 需要加入到工程里的Jar 包
    nineoldandroid-2.4.0.jar
    pdr.jar
    my-imageloader.jar
    my-nineoldandroids-2.4.0.jar
    ui.jar
    nativeui.jar
    (需要用到别的包的话可以自行添加,我这边可能会添加了几个gif.jar等等的包)

  • 从SDK/libs目录下找到这几个文件并拷贝到工程的libs目录下
ed5666f647f3150b47c518060e6f8e10.png
2. 添加成功后选中libs目录里的库文件,鼠标右键打开菜单,选择“Add As Library...”将填加到工程内的jar文件链接到工程里
e29c63a0e479063b62ea87741f9cc5cd.png

  • 成功后静态库文件前会出现一个三角形的图标,我们还可以通过修改build.gradle文件修改引用的库文件。(这一步编译器会自动同步加完库后会自动添加,Build-Clean Project会同步);
    d10becfde8a18406513703a7037bbad8.png
3 添加资源到工程
1. 在res目录上右键打开菜单,点击“Show in Explorer”打开res文件所在的目录
6ca5d350357313a441a672420c8aee9c.png

  • 删除目录下已有的目录,拷贝SDK/res目录下的全部目录到工程的res目录下
    cce3e1fdb86b422dfb2d1e31dad26b0d.png
  • 选择project,在app->src->main目录下添加assets目录
    d6e9fca9c6ba1bead6fe4b6bc0ac8ab9.png
  • 拷贝SDK/assets/目录下的data目录和res目录到工程的目录下

注意 fonts文件夹及其中的字体文件是供app中页面窗口标题栏控件左侧返回按钮使用的。
a0a0d13965bad8fd6e43416820d9c312.png
4 修改原生工程的Androidmanifest.xml文件
打开工程的AndroidManifest.xml文件
0f17f02a8c41024e9012746f985260f7.png
在AndroidManifest.XML文件中添加配置
1 修改application节点下
1 修改android:icon属性值为@drawable/icon
2 删除android:theme属性
3 删除allowBackup属性
4 添加android:largeHeap="true"
5 添加 android:name="io.dcloud.application.DCloudApplication"
6 添加android:allowClearUserData="true"
  1. <application
  2. android:allowClearUserData="true"
  3. android:icon="@drawable/icon"
  4. android:label="@string/app_name"
  5. android:largeHeap="true"
  6. android:name="io.dcloud.application.DCloudApplication" >
复制代码

f397a85192bf75372b77224ced819d82.png
2 添加文件支持的屏幕旋转方向
3 添加最低支持系统版本,5 sdk支持的最低系统版本为8,(注意:不要填写targetSDKVersion参数)
4 添加5 SDK必需引用的系统权限
f01f2bd63d45303d6a6e353e632e6fa6.png
  1. <supports-screens
  2. android:anyDensity="true"
  3. android:largeScreens="true"
  4. android:normalScreens="true"
  5. android:resizeable="true"
  6. android:smallScreens="true"
  7. />
  8. <uses-sdk android:maxSdkVersion="8"/>
  9. <uses-permission android:name="android.permission.INTERNET"/>
  10. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  11. <uses-permission android:name="android.permission.GET_TASKS"/>
  12. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
复制代码






5 删除文件中原来配置的Activity
6 添加5 内核需要的Activity和service到AndroidManifest.xml文件
006b67f75f78be4501ce23bb00887952.png
  1. <activity
  2. android:name="io.dcloud.PandoraEntry"
  3. android:configChanges="orientation|keyboardHidden|keyboard|navigation"
  4. android:label="@string/app_name"
  5. android:launchMode="singleTask"
  6. android:hardwareAccelerated="true"
  7. android:theme="@style/TranslucentTheme"
  8. android:screenOrientation="user"
  9. android:windowSoftInputMode="adjustResize" >
  10. <intent-filter>
  11. <action android:name="android.intent.action.MAIN" />
  12. <category android:name="android.intent.category.LAUNCHER" />
  13. </intent-filter>
  14. </activity>
  15. <activity
  16. android:name="io.dcloud.PandoraEntryActivity"
  17. android:configChanges="orientation|keyboardHidden|screenSize|keyboard|navigation|mcc|mnc|fontScale"
  18. android:hardwareAccelerated="true"
  19. android:label="5+Debug"
  20. android:launchMode="singleTask"
  21. android:screenOrientation="user"
  22. android:theme="@style/DCloudTheme"
  23. android:windowSoftInputMode="adjustResize" >
  24. </activity>

  25. <service
  26. android:name="io.dcloud.common.adapter.io.MiniServerService"
  27. android:exported="true" />
复制代码

5 修改工程使用的源码
1. 删除创建工程时自动生成的源码。工程中使用5 SDK默认的Activity作为应用的入口Activity,所以如果没有原生开发的需求,则可以删除自动生成的源码文件。
c8ce249635e6f2e9153030b2f8d28c8f.png

  • 在java目录下添加io.dcloud包
    87411b4d8ba384c241779583811b5cb4.png
    c4a0915b662034db7affe5b9cff6ef0d.png
    7cca120a265fce45c92e0f76524ed698.png
  • 拷贝SDK\src\io\dcloud\Rinfomation.java文件到工程的io.dcloud包下
    a73600bef842763465f944e3bd07b95b.png
  • 根据工程的包名修改Rinfomation.java的import资源的包名,

如果需要引入NativeUI.模块需要import io.dcloud.feature.ui.nativeui.NativeUIR;, 并且RInformation类需要implements NativeUIR类
如果需要引入gallery模块(图片选择)需要import io.dcloud.js.gallery.GalleryR;, 并且RInformation类需要implements GalleryR类
a912aa3457f8644c93db29ab63eb789f.png
6 添加Web应用资源到工程
1. 在assets目录下创建apps/[appid]/www目录,将web应用拷贝到www目录下,【APPID】为Web应用mainfest.json文件id节点的内容。
注意:应用存放的目录是有层级的,目录千万不要命名成apps.[appid].www不要被as的表现迷惑,新建的目录类型为Android resource directory
0a379cd300a63c51a81f097f76280cb6.png

  • 修改src/main/assets/data/control.xml文件成dcloud_control,xml(目录下的三个文件都要加个dcloud_前缀,不然引用不了权限),修改app节点的appid属性和appver属性的值。appid属性填写Web应用的mainfest.json文件的ID节点内容,appver属性填写manifest.json文件的version节点下的name节点的内容。
    29d44f89555712402a7a1331b4eade3c.png
注意:dcloud_control.xml文件配置的appid和应用所在目录和web应用的manifest.json文件的id节点必须一致,否则会导致应用无法启动
7 修改APK桌面显示的图标和Splash图片
将应用的图标(文件名为icon.png)启动图片(文件名为splash.png)按照对应的尺寸拷贝到工程的app->src->main->res -> drawable-XXX目录下:
90db6fb69ae430a2a97ab23438012f70.png
8 修改APK桌面显示的应用名
打开app->src->res->values->strings.xml文件,修改string节点对应的内容即可修改apk在手机桌面上显示的应用名称
f293f0c35c4a50171ca3f2b17ab02646.png
运行时如果提示“打包时未添加XXX模块”,请参考SDK/Feature-Android.xls文件,查找对应插件名需要引入的5+库文件和系统库文件,添加到工程即可
最简工程Androidmanifest.xml文件示例(注意包名需要修改)
ea767f84ecf3a54fbae15d70976f46d5.png
9956f4bb395a41943042d159e00a40fb.png
ce43d933fcb66e2dbb7ae8fd49938e01.png
ab62dc7a948845ef6dab5c9450d8432f.png



本教程由无限星辰工作室CRX349独家整理和提供,转载请注明地址,谢谢。本文地址:https://xmspace.net/thread-573-1-1.html
无限星辰工作室  好集导航 Discuz全集下载  星辰站长网  集热爱361  一品文学  手机小游戏合集   海外空间网 星辰api  星辰支付二维码管理平台 LOT智能硬件聚合平台 阿里云服务器 腾讯云服务器
服务Discuz!建站|DiscuzQ配置|二开|小程序|APP|搬家|挂马清理|防护|Win/Linux环境搭建|优化|运维|
服务理念:专业 诚信 友好QQ842062626 服务项目 Q群315524225

发表于 2017-12-31 23:01:48 | 显示全部楼层 |阅读模式

回复 | 使用道具 举报

该帖共收到 1 条回复!
最精简离线打包集成包:
ClearProjects.zip (8.18 MB, 下载次数: 0)
无限星辰工作室  好集导航 Discuz全集下载  星辰站长网  集热爱361  一品文学  手机小游戏合集   海外空间网 星辰api  星辰支付二维码管理平台 LOT智能硬件聚合平台 阿里云服务器 腾讯云服务器
服务Discuz!建站|DiscuzQ配置|二开|小程序|APP|搬家|挂马清理|防护|Win/Linux环境搭建|优化|运维|
服务理念:专业 诚信 友好QQ842062626 服务项目 Q群315524225

发表于 2018-1-2 17:48:01 | 显示全部楼层

回复 | 支持 | 反对 使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

美图秀

    • 自建远程桌面服务器 rustdesk
    • Discuz!x3.4 账号保镖 自动冻结账号无效解
    • PVE换主板后 网络丢失解决方法
    • Kvm 虚拟机迁移到PVE里面
    • Discuz!x3,4 阿里云DCDN配置获取客户端ip
拖动客服框
Online Service
点击这里给我发消息
点击这里联系我们
微信扫一扫
在线客服
快速回复 返回顶部 返回列表