H builder项目Dcloud离线打包Android教程(一)

app开发发展的越来越迅速,从原生开发到react native,再到基于h5+的H builder开发。官网上的离线打包教程看起来挺乱的,本人整理了下。希望后来人也少走些弯路。(官网教程地址:http://ask.dcloud.net.cn/article/38)
准备环境:

  1. eclipse,Android开发环境,或者直接下集成版的android studio(不会的百度= =)
  2. 下载离线打包Android版SDK,地址:http://ask.dcloud.net.cn/article/103

可以先把下载下来的SDK中的演示项目HBuilder-Hello导入到项目中大体查看下结构。

步骤:

  1. 新建android项目:自己建个Android项目,eclipse->file->new->android application project。
  2. 资源文件的拷贝:把HBuilder-Hello中的res–>
    anim
    drawable
    drawable-hdpi
    drawable-ldpi
    drawable-mdpi
    drawable-xhdpi
    drawable-xxhdpi
    layout
    raw
    values
    values-zh
    以上文件拷贝到项目对应的目录下。可以先将项目中的这些文件全部删除再拷贝过来。如果有报错,一般是因为你的资源文件少了(应用图标设置:AndroidManifest.xml中android:icon=”@drawable/ic_launcher” 替换为@drawable/icon;应用名称设置:res/values/string.xml修改“app_name”的值;启动图片设置,替换drawable-hdpi、drawable-ldpi、drawable-mdpi、drawable-xhdpi、drawable-xxhdpi中的splash.png),在HBuilder-Hello找到相应的资源拷贝到你项目对应的目录下即可。
    如图:
    H builder项目Dcloud离线打包Android教程(一)_第1张图片
  3. 引入jar包:把HBuilder-Hello中的libs下的以下jar包拷贝到项目对应的libs目录下:android-support-v4.jar(有就不用了)、gallery.jar、json_simple-1.1.jar、nativeui.jar、nineoldandroids-2.4.0.jar、nopermission.jar、pdr.jar、ui.jar、universal-image-loader-1.9.0.jar。
    注意:这些jar基本是必须的,如果有用到需要百度地图等的功能,还需要把libs->armeabi/armeabi-v7a/x86->libBaiduMapSDK_v3_5_0_15.so、liblocSDK6a.so这两个so文件以及libs文件夹下的geolocation.jar、geolocation-baidu.jar、BaiduLBS_Android.jar这三个jar包添加到项目中,对于其他需求,如auth第三方登录、支付宝微信支付、二维码嵌入,可以遵照SDK提供的Feature-Android.xls文件来。

  4. 在[你的项目]->src目录右击new->package新建包路径为io.dcloud 然后把HBuilder-Hello中的RInformation.java文件拷贝到io.dcloud目录下,和HBuilder-Hello目录顺序一样。
    如图:H builder项目Dcloud离线打包Android教程(一)_第2张图片

  5. 打开AndroidManifest.xml文件,添加必须权限等








    屏幕支持
    android:anyDensity="true"
    android:largeScreens="true"
    android:normalScreens="true"
    android:resizeable="true"
    android:smallScreens="true" />

    把自带的application标签的所有内容,替换成如下:
<application
        android:name="io.dcloud.application.DCloudApplication"
        android:allowClearUserData="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:largeHeap="true" >
        <activity
            android:name="io.dcloud.PandoraEntry"
            android:configChanges="orientation|keyboardHidden|keyboard|navigation"
            android:hardwareAccelerated="true"
            android:label="@string/app_name"
            android:launchMode="singleTask"
            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>
        <activity
            android:name="io.dcloud.PandoraEntryActivity"
            android:configChanges="orientation|keyboardHidden|screenSize|keyboard|navigation|mcc|mnc|fontScale"
            android:hardwareAccelerated="true"
            android:label="5+Debug"
            android:launchMode="singleTask"
            android:screenOrientation="user"
            android:theme="@style/DCloudTheme"
            android:windowSoftInputMode="adjustResize" >
        activity>

        <service
            android:name="io.dcloud.common.adapter.io.MiniServerService"
            android:exported="true" />
    application>
 6. 将HBuilder-Hello->assets->data文件拷贝到你项目对应的assets目录下,把data里的control.xml文件打开,修改appid的值为你H Builder项目的manifest.json中"id"所对应的值,然后appver的值设置成manifest.json中version里的"name"所对应的值。

如图:
H builder项目Dcloud离线打包Android教程(一)_第3张图片
H builder项目Dcloud离线打包Android教程(一)_第4张图片
注:方便以后用wgt升级资源包,以后只需要修改manifest.json中的version.name的值为高版本即可。wgt资源包升级功能可以参考官方文档:http://ask.dcloud.net.cn/article/182
7. 然后在assets目录下新建apps/[appid]/www文件夹,然后把你用H Builder搞完的项目的所有资源拷贝到这个www目录下,[appid]就是你H Builder项目的manifest.json中”id”所对应的值。
项目结构必须类似这样:
H builder项目Dcloud离线打包Android教程(一)_第5张图片

8. 右击项目运行run as->android application,ok项目跑起来了。
示例:

H builder项目Dcloud离线打包Android教程(一)_第6张图片

你可能感兴趣的:(android,开发,h-builder)