uniApp——零基础App的快速开发记录

公司需要使用移动端App来接受云平台的数据,记录一下学习过程。因水平有限,在学习的过程中不能完整、准确、全面的发现错误,如有错误,请评论指教,谢谢!

需求分析

总体需求目标:开发一款android的程序,具有MQTT通信功能,可以订阅物联网云平台推送的报警信息和控制一些设备的app,需要完成以下的任务:

1、环境搭建:

2、用户模块:

3、MQTT通信模块嵌入:

4、报警信息模块:

5、设备控制模块:

6、设置模块:

7、推送通知模块:

8、数据存储与缓存

9、优化与测试

10. 打包与发布

框架技术选择

开发的Android的程序框架市场上流行的太多了。

可以参考下面框架的总结:

2023年最全盘点 | 16款跨平台应用程序开发框架 - 知乎

APP开发用什么框架最好?这5大框架,开发者必备神器_app开发最火框架-优快云博客

Android 主流通用常用框架汇总(持续更新)-腾讯云开发者社区-腾讯云

前端开发 APP 应该采取什么框架? - 知乎

为了提高开发效率,降低入门难度,这里笔者使用的是uniapp的框架开发。(笔者是具有HTML+CSS+JavaScript的基础,不过vue.js倒是没学过!)

技术储备

技术储备针对笔者的基础而言,请酌情根据自己的基础学习。(建议直接用uniapp)

1、vue的学习

视频:

【2023最新版】Vue3从入门到精通,零基础小白也能听得懂,写得出,web前端快速入门教程_哔哩哔哩_bilibili

文档:

教程 | Vue.js(官方文档)

Vue.js(v2的官方教程)

Vue.js 教程 | 菜鸟教程

2、uniApp的学习

视频:零基础入门uniapp Vue3组合式API版本到咸虾米壁纸项目实战,开发打包微信小程序、抖音小程序、H5、安卓APP客户端等_哔哩哔哩_bilibili

文档:

 uni-app官网(官方教程)

界面设计

本着开源优先,参考百家之长。电脑上可以先按照android模拟器,这样可以运行应用,方便查看,调研界面查看其他的app有:

 原型设计为参考博主绘制的:https://rp.mockplus.cn/rps/AWCKpGP2Rx/KiNxRV02Q?  密码:20240322

uniApp框架功能开发

开发过程中,合理使用uniapp的插件社区,提高开发效率。

安装android模拟器

在uniapp项目开发中需要在APP端进行适配及调试(这里安装的是逍遥模拟器)

官方说明:安装模拟器@Simulator | uni-app官网

官方真机运行说明:App运行说明uni-app官网 

安装逍遥android模拟器参考: HBuilderX连接(安卓)逍遥模拟器【简洁

android接收服务器的推送照片

android接收服务器消息的思路参考:

第一种是客户端使用Pull(拉)的方式,就是隔一段时间就去服务器上获取一下信息,看是否有更新的信息出现。

第二种就是服务器使用Push(推送)的方式,当服务器端有新信息了,则把最新的信息Push到客户端上。

【参考】

如何实现服务器给android客户端主动推送消息

uniapp的页面间通信问题

在uniapp中页面通信主要有这几种(根据情况选择适合自己)

1、导航页面跳转传参数

在页面跳转时,通过uni.navigateTouni.redirectTo方法可以传递参数。接收数据的页面可以通过onLoadonReady方法获取传递来的参数。

//源页面
uni.navigateTo({
    url: '/other-page?name=value'
});

//目的页面
onLoad: function(options) {
    this.name = options.name; // 获取传递的参数
}

2、类似于信号与槽机制,UniApp提供了$emit$on方法来实现组件间通信

//源页面
this.$emit('someEvent', 'someData');

//目的页面
this.$on('someEvent', function(data) {
    console.log(data); // 输出 someData
});

3、使用本地存储读取

可以利用UniApp提供的本地存储API,如uni.setStorageuni.getStorage,在本地存储中存入数据,然后在需要的时候读取

//存储数据
uni.setStorage({
    key: 'userInfo',
    data: { name: '张三', age: 18 },
    success: function () {
        console.log('数据存储成功');
    }
});

//读取数据
uni.getStorage({
    key: 'userInfo',
    success: function (res) {
        console.log(res.data); // 输出 { name: '张三', age: 18 }
    }
});

4、使用全局数据

在App实例中维护全局数据,各个页面需要时可以直接访问或者修改这个数据。

const app = new Vue({
    data: {
        globalData: {}
    }
});

// 在某个页面修改全局数据
app.globalData.someData = 'value';

// 在另一个页面读取全局数据
console.log(app.globalData.someData); // 输出 'value'

MQTT通信

注意:在H5和App的通信协议不一样,可以设置条件编译

程序打包

【打包过程步骤】

1、打包前期配置(点击manifest.json文件设置)

主要涉及:基础配置、图标设置、模块配置

 

2、发行打包

这里采用在线云打包(后面估计可花点时间配置一下离线打包)

 设置参数,点击打包

打包提示,继续打包

提示等待即可

 打开目录,使用手机运行测试即可

 【参考教程】 

1、HbuilderX打包成apk安卓安装包并装到手机上_hbuilderx打包apk-优快云博客

2、用HBuilderX把vue项目打包成apk-优快云博客 

开发问题梳理

配置

工程目录下执行 npm i 安装依赖

 配置终端的环境:

【参考教程】HBuilderX打开终端,并使用npm下载包_hbuiderx里的uniapp怎么使用npm下载-优快云博客

报错

报错:

[HBuilder] 10:41:11.852 Manifest.json文件以下节点配置错误,请检查修复
[HBuilder] 10:41:11.852    app-plus.distribute.android.permissions    存在重复数据
[HBuilder] 10:41:11.852    appid    不能为空

解决:使用默认的基本权限就就够了,参考配置uni-app官网

 报错:

[Error] 尚未完成社区身份验证,请点击链接 https://ask.dcloud.net.cn/account/setting/profile 验证后再重新打包。如果验证后仍然提示此信息,请检查HBuilderX登录账户 2537XXX@qq.com。
 

解决:注册登录官方的账号,保持和hbuilderx的登录账号一直,并且一定要官网绑定手机号才可以(这点官方没有强制说明,不友好)。

------------------------
感谢您的阅读!
如果您觉得该文章写的还不错,对您有帮助,想对我微小的工作一点激励,欢迎赞赏支持。

### 回答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开发的安卓应用适合对开发速度和多平台适配要求较高的应用。开发者需要根据项目需求和考虑因素选择适合的开发方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

六点的晨曦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值