最近的一些想法及打算

已经近三个月没有更新博客了,原因无非几点

  1. 工作最近3个月加班较多,各项目较赶,其中涉及各类工作,有 node 写后端活动、日常前端活动页、更新产品需求等等;
  2. 关于之前计划更新《Node.js 来一打C++扩展》的阅后笔记计划已经流产。。。书上近一半的篇幅是关于C++的,另一半是关于 V8 内核和一些底层知识的,我自己都看的迷迷糊糊,可能以后有机会用到的话才会豁然开朗,所以现在让我写总结,我实在是想不出好东西,退一步也是不想误人子弟甚至以后自己都看不懂自己写的东西~
  3. 公司活动架构用 node 搭建起来后,提升空间实在有限,我除了写一些辅助开发的中间件以及插件以外,已经很难做性能提升了,原因非常简单,业务偏于简单,并发量也不高,有时候真的很无奈,实在找不到需要提升的点,唉。。。我想这里可能也就只能做到这步了
  4. 最近正在学习 react-native,或许以后还会有兴趣的学习一下 electron,我的学习目标一直是 web 开发者而不是一个前端,所以不论是 node 还是各类前端,我觉得都是值得学习的,未来在哪方面有需要再去深入也来得及

综上,最近有空会进行求变学习,比如开始学习一下 react-native,由于暂时我还是使用 windows 开发,所以只能打包出 android apk,但双11后打算换 MBP 了,到时候应该不存在无法调试 app 的问题,以下有我最近总结出的一些 windows 下搭建以及开发的小坑,项目说明在这,下述写的一些总结点也放在 wiki 中,需要的童鞋可以自己查阅
https://github.com/YOLO0927/30-demo-react-native-exercise

  1. 安卓模拟器可以安装 Genymotion,系统如果没自带虚拟机配置,可以下载个 VirtualBox,分发的内存给本机内存的一半即可。

  2. 按照官网搭建后启动项目 react-native run-android 可能出现某些 api 异常或不存在的情况,这时将 babel 降级到 4.0 即可"babel-preset-react-native": “4.0.0”。

  3. 当在项目内 install 了第三方插件后(我是装的 icon 包),可能需要修改 android 或 ios 配置方可编译成功,此时一般我们不会手动添加配置,会直接使用react-native link [package name] 去自动修改配置,但是修改完后会出现找不到包内 buildscript 中 repositories google(),即构建配置仓库配置中的谷歌函数,此时去将 gradle 升级到 4.0 以上版本,并在这之后修改相关 gradle 的以下构建配置,否则会报错
    facebook.react-native 包的依赖问题,以下为升级后的配置修改

    https://github.com/react-native-community/react-native-camera/issues/1490(高赞即是答案)


    如果途中出现了创建这个目录下的文件出错的情况 app\build\intermediates\res\merged\debug\,则请查看并将 /android/build.gradle 下 android {…} 中的 compileSdkVersion 与 defaultConfig[‘targetSdkVersion’] 修改为一致,统一按照 compileSdk 版本修改,然后将dependencies[‘compile’] 中的 “com.android.support:appcompat-v7:26.0.1” 这个包的版本也修改为一致,比如我都为 26,此处若不懂可查看https://blog.csdn.net/sinat_34693148/article/details/78212947 这个的处理情况类似,如图中出现系统用户权限不足导致的无法删除文件,请以管理员省份运行 bash 再次 run


    至此我的 react-native-vector-icons icon包问题解决了,你的应该也解决了吧?

  4. 当组件作为一个路由页面时,不能不定义类名就默认 export ,这样会导致使用 navagation 切换路由时无故闪退,解决方法只需要在写组件时定义组件名后再输出即可(react-navigation 坑)

  5. react-native@0.57 使用 TouchableHighlight 组件在 debug 模式下频繁点击可能会导致报长按事件错误 RESPONDER_INACTIVE_PRESS_IN to RESPONDER_ACTIVE_LONG_PRESS_IN,此时可关闭 debug 模式解决或使用 TouchableOpacity 组件替代即可(day1 计时器应用坑)

  6. 计时器应用中定时器的循环周期时间会严重影响性能,因为会频繁重渲染 watch 组件视图,使用模拟器调试会比真机性能更好,安卓真机后台跑了很多无法退出的内置工具,所以内存反而不如模拟器的实际情况,比如我安卓模拟器给予的内存为 2G ,却比 3G 的安卓机流畅,此应用建议定时器周期为 50ms(即 20 帧以下) 以上可流畅运行,否则各按钮会因重渲染次数过多产生延迟,对计时器来说 20 帧也并不会产生时间跳跃的视觉差,属于可接受范围内(day1 计时器应用坑)

  7. react-native 基础组件如 View 不会自动适应宽高,此时可给予 flex: 1 来使其自适应为全屏宽与高自适应,否则其不会默认自适应,View 中填写文本必须使用 Text 包裹,否则会报错需要你用 Text 声明,切记的是所有组件都不会有默认自适应概念(day2 天气应用坑)

  8. 打包android目录下:
    先./gradlew clean(清除上次构建的缓存),
    后:./gradlew assembleRelease

  9. 报错:error: uncompiled PNG file passed as argument. Must be compiled first into .flat file
    解:加入android.enableAapt2=false到 gradle.properties

  10. 修改APP名称:android/app/src/main/res/valuse/strings.xml目录下

  11. 修改图标 :android/app/src/main/res/AndroidManifest.mxl 下修改 icon 读取的目录文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值