很早以前就听闻<JavaScriptCore/JavaScriptCore.h>的大名了,只是没有正面接触过,有的也只是间接接触过,比如ReactNative,它渲染界面的核心就是<JavaScriptCore/JavaScriptCore.h>。但是今天就不得不和它有一次正面的接触了,公司要做一个功能,需要Nativejs方法之间的互调,所以,本篇文章就说说如何实现。当然,本篇文章说的都是基础。

阅读全文

本篇文章主要说一下如何利用ReactNativejsbundle机制来实现App的热更新。

前段时间iOS界发生了一件大事,苹果禁止含有热更新或者热修复的APP上架,这里主要是禁止使用runtime的一些特性。但是ReactNative不同,它没有使用到runtime特性,并且好多人已经证实,ReactNative应用依然可以上线。

其实好多应用并不是使用ReactNative直接开发,而是在原生应用的基础上,导入ReactNativeiOS最好使用cocoapods导入,Android使用build.gradle添加依赖包。本篇文章主要包含三个部分:环境搭建、iOS热更新和Android热更新。

阅读全文

一天一Android之AsyncTask

发布在 Android

前段时间我有说过HandlerMessageLooper三者之间的关系,它们可以解决线程间通信,可以用作子线程处理耗时操作,主线程刷新UI等。今天我要说的是另外一种解决方案:AsyncTask。它的内部还是使用异步消息处理机制,只是Android对这三者进行了高度的封装。如果你对异步消息处理机制还不是很清楚的话,你可以看看这篇文章:一天一Android之异步消息处理机制。来看看AsyncTask到底如何使用。

阅读全文

写在此文章之前

最近一直在研究Android,我开始学习Android是有原因的,前段时间写过一个类似于一元夺宝的跨平台APP,里面的好多功能是ReactNative没有提供的,好在现在ReactNative开源社区里面已经有好多优秀的开源库了,就直接拿来用了,但是,这并不能满足开发中一些特殊的需求,这个时候就要写js和原生之间的桥接了,因为我的老本就是iOS,所以写iOS的桥接很容易。但是写Adnroid就有点费力了,因为我对Android一窍不通。但是想学好ReactNative,只会iOS是不行的,所以我就开始了我的Android之旅。还有,假如ReactNative在以后死掉了,我也新郑了Android开发这一新技能,一本万利。

Android的博客也写了几篇了,我要回过头来说一些ReactNative的东西,所以,如果你看到我今天在说Android,明天又说ReactNative,你不要奇怪,这很正常。

那今天就先来说说关于js和原生的桥接。

阅读全文

一天一Android之Fragment

发布在 Android

今天愚人节,先祝大家愚人节快乐!

今天来说一下Android开发中经常使用到的一个类:Fragment。由于Android屏幕的碎片化,Android为我们提供了一个和方便的类来使我们的APP可以适应各种屏幕的手机和平板,当然,Fragment的功能远不止是为适应屏幕而生。你可以把Fragment当成Activity的一个界面的一个组成部分,甚至Activity的界面可以由完全不同的Fragment组成,更神奇的是Fragment拥有自己的生命周期和接收、处理用户的事件,这样就不必再Activity写一堆控件的事件处理的代码了,更重要的是,你可以动态的添加、替换和移除某个Fragment

阅读全文

无论是Android还是iOS,关于UI的操作都是线程不安全的,所有的UI操作只能在主线程中执行。有时候我们会在子线程中做一些耗时的操作,比如网络资源的请求,当这些耗时操作结束时,我们又希望拿这些请求下来的资源去更新UI,但是当前线程为子线程,而更新UI由必须在主线程中,这就涉及到了线程间的通信问题。

学过iOS的同学都知道,我们可以使用GCD或者performSelectorOnMainThread:等技术来达到我们的需求。而在Android中,我们就要使用到异步消息处理机制了。

这篇文章就来详细说一下异步消息处理机制。

阅读全文

任何一个应用程序,说白了都是在不停的和数据打交道,通过网络获取的数据,一般为瞬时数据,当我们关闭APP的时候,这些数据就会消失。但有时候我们却希望在APP关闭的时候,保存这些数据,以期待在下次APP启动的时候能用到这些数据。那么,这里我们就需要用到数据持久化技术了。

其实数据持久化已经被广泛应用于各种程序设计的领域了,后台就不说了,iOS有plist归档数据库等。当然,Android也有类似与iOS的存储方式:文件存储SharedPreference以及数据库等,对了,Android还有SD卡。

阅读全文

一天一Android之广播

发布在 Android

提到广播,因为我是农村的,首先想到的就是我们村大队的喇叭,如果平常有交电费,或者重要的事情,这个喇叭就会响起,全村的都能听见,可能有时候邻村的也能听见,足见广播的推送面积之大。

提到广播这种机制,学过iOS的都知道通知,我想这两种机制应该都是类似的。在iOS中,我们如果想监听系统的某些事件,比如APP退到后台,我们只需要在把监听对象添加到系统的通知中心中,并且关注APP退到后台的事件,就可以随时监听了。通知还有个好处就是,我们可以夸线程,夸界面的处理事件。

那么,在Android中,广播又是怎么回事呢,这篇文章就来详细分析一下广播在Android中的应用。(ps:广播还有另外一个名字——全局大喇叭~~)

阅读全文

ListView由于其强大的功能,已经能满足我们绝大功能的开发,但是,当我们的数据比较复杂,条目也比较复杂的时候,如果我们优化的不好,那么ListView的性能就会非常差。还有,ListView只能实现数据纵向滚动的效果,如果我们想实现横向滚动的话,ListView做不到。

为此,Android提供了一个更强大的滚动控件——RecyclerView。它可以说是一个增强版的ListView,不仅可以轻松实现和ListView同样的效果,还优化了ListView中存在的各种不足之处,目前Android官方更加推荐我们使用RecyclerView。

阅读全文

一天一Android之ListView

发布在 Android

说起ListView,就不得不说iOS的UITableView,毫不夸张的说的,放在3年前,如果你去面试的时候,你说你会用UITableView,知道UITableView的代理方法,不用说了,你可以直接来上班了。

ListView在Android中开发的重要性不言而喻,学好ListView,我想在以后的列表开发中就不用发愁了。什么是列表开发?这么说吧,在你使用的APP中,80%的都会用到列表开发,比如微信的聊天页,QQ的个人空间页。为何要用列表开发,列表开发的优越在哪里?我今天来一探究竟。

阅读全文
Copyrights © 2019 贵永冬. All Rights Reserved.
作者的图片

贵永冬

iOS开发者
会一点RN和android, 十足的海贼迷


河南信悦通网络科技有限公司


河南 郑州