react-native开发安卓端app

2024-04-25 22:44

本文主要是介绍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开发还是颇废了我一番功夫的,可以说红温了很多次,不过好在最终没有夭折。。。

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

这篇关于react-native开发安卓端app的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/935991

相关文章

Python将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown

在React中引入Tailwind CSS的完整指南

《在React中引入TailwindCSS的完整指南》在现代前端开发中,使用UI库可以显著提高开发效率,TailwindCSS是一个功能类优先的CSS框架,本文将详细介绍如何在Reac... 目录前言一、Tailwind css 简介二、创建 React 项目使用 Create React App 创建项目

vue使用docxtemplater导出word

《vue使用docxtemplater导出word》docxtemplater是一种邮件合并工具,以编程方式使用并处理条件、循环,并且可以扩展以插入任何内容,下面我们来看看如何使用docxtempl... 目录docxtemplatervue使用docxtemplater导出word安装常用语法 封装导出方

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark

Vue中组件之间传值的六种方式(完整版)

《Vue中组件之间传值的六种方式(完整版)》组件是vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用,针对不同的使用场景,如何选择行之有效的通信方式... 目录前言方法一、props/$emit1.父组件向子组件传值2.子组件向父组件传值(通过事件形式)方

css中的 vertical-align与line-height作用详解

《css中的vertical-align与line-height作用详解》:本文主要介绍了CSS中的`vertical-align`和`line-height`属性,包括它们的作用、适用元素、属性值、常见使用场景、常见问题及解决方案,详细内容请阅读本文,希望能对你有所帮助... 目录vertical-ali

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

浅析CSS 中z - index属性的作用及在什么情况下会失效

《浅析CSS中z-index属性的作用及在什么情况下会失效》z-index属性用于控制元素的堆叠顺序,值越大,元素越显示在上层,它需要元素具有定位属性(如relative、absolute、fi... 目录1. z-index 属性的作用2. z-index 失效的情况2.1 元素没有定位属性2.2 元素处