react-native开发安卓端app

前言

首先说一下我为啥要开发一个rn的app吧,其实就是想试试新技术,然后给我之前的五系统网站做一个适配,只能说感觉rn的资料确实比较少,中间也是遇到了一堆的问题,所以记录一下,后面碰到不会再踩坑。。。

正文

首先就是不得不提的expo了

第一坑:expo

expo在一开始都是很不错的,包括开发环境的整个研发过程都非常舒服(这里提一下我使用的是安卓模拟机,在电脑上的),代码语法啥的其实没有太难到我,和react比较像,唯一值得一提的大概是写样式比较特殊。。。总之,我选择expo的初衷就是,从宏观上来看,Expo是一个免费开源的用于构建React Native(RN)应用的工具链。它提供了一个开发环境和一整套服务,对开发者非常友好,特别是对初学者和中小型项目。而且他还:1.简化了开发流程:你不需要在开发机器上安装任何Android或iOS的SDK。你只需要一个expo开发客户端(在手机或模拟器上安装)就可以预览和测试你的应用。 2. Expo SDK:Expo SDK 提供了许多实用的API。你可以获取设备的硬件信息,接入推送通知服务,使用面部和指纹识别,访问设备的图片、音频、视频等等。 3. Expo Snack:Expo 提供的Snack在线工具使得你可以在Web浏览器中完成开发和测试工作。 4. 发布与更新:Expo 允许你跨过构建过程直接将你的 JS 代码发布到服务器,然后通过链接或者扫描二维码即可在 Expo 客户端中打开应用程序。 总的来说,Expo是一个非常有优势的工具,能在很大程度上帮助开发者简化React Native开发流程、提升开发效率。

总之。理想很丰满,甚至现实在开发环境的时候也很丰满,整个开发流程都非常的顺滑我只能说,知道有一天我写完一个新功能之后,我思考了一下,要不先打个apk试试?

然后就是噩梦的开始:

一开始打包(expo打包很慢,基本要20min左右,我这还是小软件,而且疑似有次数和时间的上限),到expo网站发现打出来的是abb后缀的,给我整懵了,经过查询才发现是谷歌的新的格式,你要是想发表在谷歌商场需要这个格式,然而这个格式似乎不能直接在手机上下载,所以我到配置文件里改成了打包成apk,没问题!这个解决了。

然后,我就把这个打包的apk下载了下来,好家伙一看居然有90mb(对比我之后的成功的apk,只有20多mb),不过我也没多想,当时就是觉得,什么,没问题,这就是我们node_modle的功劳,你们有这么重的东西吗()

直到安装到手机上后,我才发现,他喵的会闪退。。。。这下我其实还没急,毕竟在开发环境跑到还是挺好的,应该可以找到问题所在,于是我开始了到处查找怎么解决问题。。。。在我一一尝试过后,我绝望的发现,都没用。。。。

这下其实我有点急了,毕竟写了三四天的东西,还是花了点心血的,要是就这样夭折,那可真是让人红温

第二坑:原生rn框架

在和expo抗争了一晚上没有解决问题的本人,痛定思痛,直接转向原生的rn框架,然后想办法迁移代码,反正这些代码的语法是通用的嘛,不是大问题。

然后在这里,我为了保险,在初始化完成项目之后就直接吧本地打包了一个apk,好家伙,本地打包不仅速度很快,而且包体也没那么大,然后就是下载到手机上,测试,耶耶耶耶耶,没问题!

那么接下来就是代码迁移部分了,这个其实,改了很多东西,因为我原先很多东西都是用expo框架的玩意,所以得做很多替换,不过,历经一段小修改就成功了!!!!!

最后就是打包部分,然后我在我的手机上安装好了apk-----成功了!!!!

结语

总之,第一次app开发还是颇废了我一番功夫的,可以说红温了很多次,不过好在最终没有夭折。。。

接下来要做点啥好像暂时还没有思路,正在思考我需要点啥中。。。。

相关推荐
Cory.眼31 分钟前
WebRTC入门指南:实时通信零基础
javascript·webrtc·实时通信
前端架构师-老李1 小时前
16 Electron 应用自动更新方案:electron-updater 完整指南
前端·javascript·electron
拖拉斯旋风1 小时前
📚 JavaScript 变量声明三剑客:`var`、`let`、`const` 学习笔记
javascript
可触的未来,发芽的智生3 小时前
追根索源:换不同的词嵌入(词向量生成方式不同,但词与词关系接近),会出现什么结果?
javascript·人工智能·python·神经网络·自然语言处理
努力写代码的熊大3 小时前
stack、queue与priority_queue的用法解析与模拟实现
java·前端·javascript
im_AMBER3 小时前
React 06
前端·javascript·笔记·学习·react.js·前端框架
m0_748233644 小时前
C++开发中的常用设计模式:深入解析与应用场景
javascript·c++·设计模式
fruge4 小时前
TypeScript 基础类型与接口详解
javascript·ubuntu·typescript
AAA阿giao5 小时前
JavaScript 中的变量声明:var、let 与 const 深度解析
javascript·笔记
Mintopia5 小时前
🌐 数据合规框架下的 WebAIGC 训练数据处理技术规范
前端·javascript·aigc