首先说明,该文章是默认你已经对原生安卓的开发非常熟悉,并且十分熟悉android studid的操作,否则就不用了。
官方相关文档:https://nativesupport.dcloud.net.cn/NativePlugin/course/android
下载Android离线打包SDK
里面有demo: 网址如下:https://nativesupport.dcloud.net.cn/NativePlugin/course/android 用android studio打开其中的UniPlugin-Hello-AS项目 删掉里面里面本来已经有的几个module,自己重建:
创建一个module
这个过程和正常的创建module没有什么不同,比如TestModule
修改该modole的build.gradle,加入必要的依赖,还要加入导入aar包的设置,如下:
上图中的v8的aar包在app项目的lib中:
不要把它复制到module的lib中,没有必要。 在module中创建一个类,比如TestModule,他要继承UniModule,在里面要被uniapp调用的方法上加入@UniJSMethod,如下: 如果要传参数过来,要这样接收:
注册这个module
在app的build中引入这个module:
然后在app的assets里找到dcloud_uniplugins.json,将module信息写进去:
uniapp建一个项目
先要注册一个dcloud账户,使用这个账户登录hbuilderX,有账户才能申请打离线包和申请appid。 在uniapp中建一个新项目,里面通过uni.requireNativePlugin方法调用module:
然后打将这个uniapp项目打一个离线包 打出来后是一个这样的文件夹: 这个文件夹的名字其实就是这个uniapp项目的id。 在安卓项目的main的assets中建一个文件夹apps,将这个文件夹复制进去: 修改assets里的data中的control.xml,将这个uniapp项目的id写进去:
在uniapp官网的开发者中心申请appid
在app的build中确定自己的包名,配上自己的签名,要去申请appid使用:
将包名,sha1填到uniapp的开发者中心上,申请appid: 开发者中心网址:https://dev.dcloud.net.cn/app/index?type=0 进入后就能看到自己刚刚打包的那个项目:
点进去,在左边有个离线打包key管理,填入包名,sha1,申请id,不打包ios就不选ios: 将这个appid写入app项目的manifest里:
真机直接测试
正常就可以安装运行了:
打jar包
测试通过后,将module打一个jar包,打jar包的方法就不讲了,搞安卓开发的都会。 然后把jar包放入app的lib里 然后就可以把app里build.gradle里的implementation project删掉了: 真机运行测试,一样可以正常运行
发布apk
直接在android studio上发布apk,发布的时候要把manifest里的android:debuggable="true"去掉,不然发布不成功。 发布成apk就可以直接安装在手机上用了
|