uniapp开发android原生插件

1.下载android平台SDK

开发者须知 | uni小程序SDK

2. 解压并导入UniPlugin-Hello-AS项目到android studio

  • 点击Android Studio菜单选项File--->New--->Import Project。

  • 如果出现Android SDK路径不对问题,请在Android Studio中鼠标右键UniPlugin-Hello-AS选择Open Module Settings, 在SDK Location 中设置相关环境路径

3. 新建 module

完成后等待加载完成

4.插件开发

(1) 将uniplugin_module的build.grade的内容复制到新建的模块的build.grade中,根据需要修改compileSdkVersion等信息。

(2)在app的build.grade中添加implementation project(':模块名')

(3) 在新建的模块中新建java类extends UniModule

编写代码

 package com.cn.akiplugin.test;
 import android.util.Log;
 ​
 import com.alibaba.fastjson.JSONObject;
 ​
 import io.dcloud.feature.uniapp.annotation.UniJSMethod;
 import io.dcloud.feature.uniapp.bridge.UniJSCallback;
 import io.dcloud.feature.uniapp.common.UniModule;
 ​
 public class MainModule extends UniModule{
 ​
     @UniJSMethod(uiThread = false)
     public void register(JSONObject options, UniJSCallback jsCallback){
         Log.i("register",JSONObject.toJSONString(options));
         jsCallback.invoke(new JSONObject(){{
             put("code",0);
             put("data",123);
         }});
     }
 }

 

5. 相关配置

(1) 在app\src\main\assets\dcloud_uniplugins.json文件中增加配置 此处以moudule为例

{
       "hooksClass": "",
       "plugins": [
         {
           "type": "module",
           "name": "插件名称,如:aki-test", 
           "class": "主类,上述代码中MainModule路径 如:com.cn.akiplugin.test.MainModule"
         }
       ]
     }

6. 插件调试

(1) 打开hbuiderx 创建一个uniapp项目编写调试代码

<!-- 为了测试方便,将index.vue 修改为nvue -->
 <template>
     <view class="content">
         <view class="result">
             {{result}}
         </view>
         <view class="list">
             <text class="txt" @tap="registerData">注册...</text>
         </view>
     </view>
 </template>
 ​
 <script>
     const akiTest = uni.requireNativePlugin("aki-test");
     let that = null;
     export default {
         data() {
             return {
                 title: 'Hello',
                 result:'result:',
                 plugin:null
             }
         },
         onLoad() {
             that = this;
         },
         onShow() {
         },
         methods: {
             registerData(){
                 akiTest.register({},e=>{
                     that.result = "register:"+JSON.stringify(e);
                     uni.showToast({
                         title:JSON.stringify(e),
                         icon:"none"
                     })
                 })
             }
 ​
         }
     }
 </script>
 ​
 <style>
     .content {
         display: flex;
         flex-direction: column;
         align-items: center;
         justify-content: center;
     }
 ​
 ​
     .text-area {
         display: flex;
         justify-content: center;
     }
 ​
     .result {
         font-size: 36rpx;
         color: #8f8f94;
         width: 690rpx;
         display: flex;
         margin-top: 40rpx;
     }
     
     .list{
         width: 750rpx;
         height: auto;
         display: flex;
         flex-direction: column;
         align-items: center;
         justify-content: center;
     }
     .txt{
         width: 300rpx;
         height: 88rpx;
         line-height: 88rpx;
         border-radius: 20rpx;
         text-align: center;
         color: #fff;
         background-color: #2D9F7E;
         margin-bottom: 40rpx;
     }
 </style>
 ​

(2)打包:发行 ---> 原生app-本地打包 ---> 生成本地打包app资源

(3)将打包完的资源拷贝到android studio 项目目录下

进入android studio 项目\app\src\main\assets\apps目录下 删除原有__UNI__E文件夹

将本地打包app资源复制到此目录下

(4)修改dcloud_control.xml(文件位置app\src\main\assets\data\dcloud_control.xml)

 
<hbuilder debug="true" syncDebug="true">
 <apps>
     <app appid="此处填uniapp项目的应用标识(AppID)" appver="" />
 </apps>
 </hbuilder>
 ​

(5)配置离线打包key

  1. 进入开发者后台:开发者中心

  2. 找到前序步骤创建的项目

  3. 点击应用名称进入应用信息

  4. 点击Android云端证书

  5. 创建证书 等待完成(约几分钟) 完成后刷新

  6. 重新进入Android云端证书界面点击下载证书

  7. 点击证书详情,点击查看证书密码,记住密码以及详情数据

  8. 点击各平台信息 -- 新增

  9. 将证书详情中的SHA1复制到Android 应用签名SHA1值

  10. 将证书详情中的SHA256复制到Android 应用签名SHA256

  11. 将证书详情中的MD5复制到Android 应用签名MD5

  12. 录入完成后点击提交

  13. 点击离线打包Key列的创建,弹出页面点击创建

  14. 点击离线打包Key列查看,复制Android内容

  15. 打开Android项目的AndroidManifest,xml 文件修改如下两处

     <manifest xmlns:android="http://schemas.android.com/apk/res/android"
         xmlns:tools="http://schemas.android.com/tools"
         package="此处填写开发者后台创建的包名/appid/域名">
         
     <meta-data
                 android:name="dcloud_appkey"
                 android:value="此处填写上述的AppKey" />

  16. 在app下新建目录key,将6中下载的证书复制到此文件夹

  17. 修改项目项目包名app的build.grade文件

  18. 修改app的build.grade 的证书配置

     signingConfigs {
             config {
                 keyAlias '证书详情中的别名'
                 keyPassword '步骤7中复制的密码'
                 storeFile file('key/证书名称')
                 storePassword '步骤7中复制的密码'
                 v1SigningEnabled true
                 v2SigningEnabled true
             }
         }

  19. 点击Sync Now

  20. 完成后启动项目

### 回答1: Java开发的安卓应用和Uniapp开发的安卓应用有以下几个主要的区别: 1. 开发语言和框架:Java开发的安卓应用使用Java语言和Android SDK开发,而Uniapp开发的安卓应用使用Vue.js、HTML5、CSS等前端开发语言,并使用Uniapp框架进行跨平台开发。 2. 性能:由于Java开发的安卓应用是原生应用,可以充分利用设备的硬件资源,因此在性能上相对更好。而Uniapp开发的安卓应用使用了一层中间件,性能相对较差。 3. 跨平台支持:Uniapp开发的应用可以在多个平台上运行,包括iOS、Android、H5等,而Java开发的安卓应用仅可以在安卓平台上运行。 4. 开发难度和成本:相对而言,Uniapp开发的应用可以更快速地开发和部署,因为Uniapp可以通过一套代码同时生成多个平台的应用。而Java开发的应用需要更多的开发时间和成本,因为需要分别开发iOS和Android两个平台的应用。 5. 功能和定制化:Java开发的应用可以更好地满足特定的需求和定制化需求,因为可以直接使用Android SDK提供的功能。而Uniapp开发的应用虽然提供了一些跨平台的功能,但可能无法满足特定的定制化需求。 ### 回答2: Java开发的安卓应用和Uniapp开发的安卓应用在开发工具、跨平台能力和性能方面有较大的区别。 首先,Java开发的安卓应用主要使用Android Studio这样的专用开发工具,利用Java语言进行编码。相对而言,Uniapp开发的安卓应用则可以使用多种开发工具,例如HBuilderX,同时兼容运行于不同平台的多种开发语言,如Vue.js、JavaScript等。 其次,Uniapp是一个开发一次,多平台运行的前端框架,它可以将开发的应用一键打包成安卓、iOS等多个平台的应用。相比之下,Java开发的安卓应用只能运行于安卓平台。 再者,由于Uniapp是通过WebView来实现跨平台的能力,其性能较Java开发的安卓应用略有差异。尽管Uniapp通过Vue.js等框架进行性能优化,但由于WebView的底层机制限制,性能方面仍然不如原生的Java开发应用。 此外,Java开发的安卓应用在各大应用商店中的推广和发布相对较为简单,因为Android平台支持Java应用程序的直接安装和调试。而Uniapp开发的安卓应用需要通过将项目打包成apk文件的方式进行发布和安装,相比之下稍显复杂。 总结来说,Java开发的安卓应用和Uniapp开发的安卓应用在开发工具、跨平台能力和性能方面存在较大差异。开发者可以根据自己的需求和项目特点来选择适合的开发方式。 ### 回答3: Java开发的安卓应用和uniapp开发的安卓应用在技术特点、开发方式和适用场景上有一些区别。 首先,Java开发的安卓应用是使用Android SDK和Java语言进行开发的。开发者需要使用Android Studio等开发工具,编写Java代码,使用Android SDK提供的API进行应用程序的开发。Java开发的安卓应用可以充分利用Android系统的底层资源和功能,具有更高的性能和更好的稳定性。Java开发的应用可以使用广泛的Android框架和库,拥有更大的开发和定制能力。 而uniapp开发的安卓应用是使用HBuilderX开发工具和Vue.js等技术进行开发的。uniapp是一套基于Vue.js的跨平台开发框架,可以同时开发多个平台的应用,包括安卓、iOS和Web。uniapp开发的安卓应用可以通过编写一次代码,同时生成安卓和其他平台的应用。虽然uniapp的性能相对较低,但具有开发快速、跨平台等优势。对于简单的应用程序或者需要快速迭代开发的项目,使用uniapp可以提高开发效率。 总的来说,Java开发的安卓应用适合对性能和稳定性要求较高的应用,可以充分利用Android系统的功能和特性。而uniapp开发的安卓应用适合对开发速度和多平台适配要求较高的应用。开发者需要根据项目需求和考虑因素选择适合的开发方式。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值