自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 React Native是怎么在Android上跑起来的

(源码版本:0.34,新版本(0.48)基本流程是不变的,建议跟着源码看看,哪个版本的倒影响不大) 这篇简单刨析一下React Native是怎么在Android上跑起来的,会从下面几个方面说说。启动流程通信机制事件驱动 渲染原理 脚本执行 启动流程React Native在Android上启动是从ReactRootView.startReactApplication触发的,而Rea

2017-09-07 16:00:23 1947

原创 RxJava2线程切换原理

以下面代码为例: Observable.just("HELLO WORLD") .map(new Function<String, String>() { @Override public String apply(@NonNull String s) throws Except

2017-09-05 16:22:23 1037

原创 React Native启动简易思维导图

在线浏览

2017-08-22 19:26:25 730

原创 Fragment Can not perform this action after onSaveInstanceState

更多博客 https://70kg.info最近遇到了这个异常,记录一下解决办法。首先看一下这个异常是从哪里抛出来的://FragmentManager public void enqueueAction(OpGenerator action, boolean allowStateLoss) { if (!allowStateLoss) { checkSta

2017-08-10 17:22:20 379

原创 Lifecycle Components 问答

为什么不直接使用ActivityLifecycleCallbacks而是使用一个non-UI fragment ReportFragment?因为在”创建”生命周期方法中(onCreate,onStart),ActivityLifecycleCallbacks中方法调用是在Activity的生命周期方法之前。在”销毁”生命周期方法中(onStop,onDestroy),ActivityLifecyc

2017-08-09 11:48:47 923

原创 Fragment启动生命周期

源码版本:26.0.0-beta1Fragment 的生命周期是依赖Activity的,假设在Activity的onCreate中有如下代码, SearchFragment searchFragment = new SearchFragment(); getSupportFragmentManager().beginTransaction() .rep

2017-08-04 16:11:38 316

原创 Retrofit源码浅析

更多博客 https://70kg.info 这篇主要会走读一下Retrofit的源码,解析一下里面遇到的一些设计模式,网络请求的过程等。开始从创建Retrofit开始,看一下常见的创建Retrofit的实例的方式 HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(); interceptor.se

2017-08-03 22:42:03 268

原创 Express + React 搭建简易web微博

更多博客 https://70kg.info最近用 React 写了个简单的web微博,因为js的跨域问题,无法直接请求web Weibo的API,所以只能使用Node来中转一下,这样玩法也更丰富,随便处理数据。目前的功能只包括看微博和查看大图。微博的自动登录使用的是nodejs-weibo-login,但是这个库是为了pc端微博设计的,最初还是可以兼容web版的微博登录,后来估计是新浪修改了规则

2017-08-03 22:40:36 450

原创 Instant-Run与Tinker中Application替换

更多博客 https://70kg.info为什么要替换application因为5.0以下开始只会去加载第一个dex,如果appliaction不在第一个dex,则无法启动。如果把自己的appliaction放在第一个dex中,而自己的application没有使用multidex,则只会去加载原始加载生成的dex,也是会报错。所以办法就是去代理掉原始的application,将app启动的

2017-08-03 22:39:35 487

原创 Asncy await Promise的使用

更多博客 https://70kg.infoconst fetch = () => { return new Promise((resolve, reject) => { setTimeout(() => { // resolve('success'); reject('error'); }, 2000);

2017-08-03 22:38:45 1824

原创 浅谈CoordinatorLayout

更多博客 https://70kg.info写在前面最近这一周空余的时间比较多,然后去重构了一个公司项目里的一个个人中心的页面,原来使用了ListView再加上addHead的方式,然后动态的去控制Head的高度去实现嵌套滑动的效果,因为我的模拟器没有跑起来,所以也没有去录下个GIF来,因为这篇主要说一下CoordinatorLayout的处理嵌套滑动的原理,没有效果图也影响不大。开始吧先写出来点

2017-08-03 22:36:59 293

原创 Router设计

更多博客 https://70kg.info  最近公司的项目要进行页面间跳转的重构,首先项目是单 Activity + 多 Fragment 的结构,因为是电商的项目,所以涉及到很多 H5 , Native 和 React Native 页面之间的交互与跳转,这篇不是介绍两者之间是如何进行通信的,而是当 H5 或者外部分享的链接打开后传递过来 Uri 要解析跳转到 Native 的页面的处理。当

2017-08-03 22:36:03 426

原创 从零撸一个Redux

更多博客 https://70kg.info扯一扯这段时间在看 Redux 的东西,稍微梳理一下整个框架的流程。其实整个 Redux 的代码很少,现在我也不能理解很多它的思想,反正先撸出个简单的 Redux 吧。目标是照着它的流程写一个最简单的,也要支持异步 Action。也算是个笔记性的东西。Action这里把 Action 放到了 Store 中,这样在 Component 中使用的时候只要

2017-08-03 22:34:44 388

原创 Handler sendMessage的message保存在哪?

更多博客 https://70kg.info保存在MessageQueue的Message mMessages成员变量中,通过message中的next维护一个单向链表。message本身一直在java层,和native的message没有直接操作关系。looper分发的消息都是通过messagequeue.mMessages间接获取的。当sendMessage时,进入messagequeue的

2017-08-03 22:32:59 779

原创 由View.post引发的问题

更多博客 70kg.info看到记一次错误的使用View.post(Runnable)这篇的时候,自己去实验了一下,当时是在 Activity 的 onDestory 中做的,以为到了 onDestory View 肯定是 Detach 的,结果并不是这样的。。后来发现在 API 24的时候,关于 View.Post 这部分的代码有重写,所有就捋了捋关于这部分的东西,简单记录一下。View Det

2017-08-03 22:31:00 992

原创 RecycleView Adapter的封装

扯一扯现在越来越多的开始使用RecycleView去替代ListView,在使用ListView的时候数据和界面的绑定一般是去继承BaseAdapter,对于BaseAdapter的封装网上已经很多了,其实也不用去封装太多的东西,BaseAdapter的整体也比较见简单。但是当使用更为强大的RecycleView的时候,如果不去对它的adapter进行适当的封装,使用起来就显得繁琐的多了。现在来说一

2015-11-26 20:12:16 1024

原创 Android5.0 SharedElement的使用

概述SharedElement是什么,翻译是共享元素,但是光说也说不出个杰宝来,no picture say a jb,先看一下效果图,省好多话。 这个效果目前只支持API21以上,之前的可以使用一些兼容库,比如这个ActivityOptionsICS。废话少说,下面来介绍一下如何去使用和实现这个效果。简单原理俗话说眼见为实,这句话也不一定对,从上面的图可以看到,从activityA的一个图片

2015-11-05 22:47:32 3705

原创 单例模式

单例模式  开始学习设计模式,总是觉得自己的代码写的又烂又丑的,看着那些大神写的那么优美,所以设计模式开搞。   先从最简单的单例模式开始:单例模式的特点:单例类只能有一个实例单例类必须自己创建自己的唯一实例单例类必须给其他的对象提供这一单例单例的模式用在那些只需要单一实例的地方,像流行的第三方图片加载库UIL的初始化ImageLoader imageLoader = ImageLoade

2015-08-04 08:31:11 569

原创 代理模式

代理模式  今天来写一写代理模式,代理模式的主要作用是为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。其实就是我不想直接去接触你,但是我可以控制你。   举个例子,一个人想去追求女生,但是他又不好意思自己去送礼物,就叫一个人代理他去送。但是礼物真正是这个人送的,不是代理人送的。(好吧,有点复杂)

2015-08-04 08:15:50 647

原创 我的domes

之前还想专门开一篇博客去写自己平时遇到的一些知识,但是每次提交博客都得审核好久好久好久。。。遂猝。然后就在GitHub上开了个项目,把遇到的一些东西都写进去,包括看博客的Dome,网上看到的其他项目等等地址在这里                                                                     欢迎大家参观。。

2015-05-26 23:05:27 429

原创 Android Studio 快捷键

最近从Eclipse转到了Android Studio,刚开始还是很不习惯,用了一段时间,越来越顺手,再也不想回到Eclipse了。Android Studio的快捷键和Eclipse的还是有区别的,下面写一些常用的快捷键。注释代码(//) Ctrl + /注释代码块(/**/) Ctrl + Shift + /格式化代码 Ctrl + Alt + L清除无

2015-05-15 23:11:39 452

原创 使用AsyncTask下载图片并更新进度

对于从网络加载资源,我们需要开启Work Thread来进行加载,但是如果自己去维护一个线程池并且与UI线程进行交互是很繁琐的一件事,android为我们封装了一个类AsyncTask就是为了解决轻量异步加载需求。 我们使用AsyncTask主要是继承AsyncTask抽象类,AsyncTask类有三个参数 AsyncTask,分别是输入的参数,用于更新进度的参数,返回的参数,我们在创建 

2015-05-01 21:42:24 574

原创 遇到知识点总结

这段时间发现一个现象,在做项目中遇到一些问题,顺手百度Google找到答案之后,用在项目里面,但是知识点又比较琐碎,也不至于开一篇博客去写,所有决定以后遇到的都放在这篇博客里面,类似笔记的效果,今天先占个坑。

2015-04-23 23:13:25 537

原创 改进型Tab页导航,TabBarView解析

在开发中经常遇问问到页面的滑动,这时我们需要提供一个tab页的导航条来显示滑动到了哪一页,类似这样的  但是如果我们的tab页比较少,再加上使用ActionBar,这样就会很占空间,像安卓默认提供的tab页是不是很浪费空间,我们可以把他挪到ActionBar上,简单的方法就是使用反射private void enableEmbeddedTabs(Object a

2015-04-22 22:33:49 809

原创 convertView重用和异步加载图片造成错乱问题解决

在使用ListView中的我们经常是这么使用,继承BaseAdapter,重写里面的方法,其中比较重要的方法就是getView方法,这个方法就是返回一个view来填充Listview的每个Item,但是如果我们每次都是重新创建View,当item数量很多时候,这样就很浪费内存。可以重用convertView和使用ViewHolder来进行性能的优化,经常见到的这样的public View ge

2015-04-10 23:49:56 1514

原创 自定义滑动选择按钮

在平时使用的手机的时候,我们经常会看到这样的按钮,用来改变某种状态,Android上叫ToggleButton,但是系统默认的按钮很难看。现在都流行滑动来改变状态,就像IOS上实现类似功能的按钮。最近在GitHub上看到了有个开源的项目,就研究了一下,实现了相同的功能,效果还是不错的。下面来介绍一下。 实现这个按钮是使用了自定义View,关于自定义View,之前也写过几篇博客,今天

2015-03-27 20:37:26 758

原创 自定义ViewGroup入门

这段时间一直在学习自定义控件,之前就想完成这篇博客,后来看了鸿洋和爱哥的自定义控件系列,发现里面有很多很多的东西是我之前没有想到的,内容比较多,这篇博客就算是当做一篇入门笔记来写。我刚开始写博客,没什么文采,也是想到哪就写到哪,如果觉得比较混乱什么的,见谅。   之前写过了一篇关于自定义View的博客,其实自定义ViewGroup和自定义View是有很多的相似性的,毕竟ViewGroup也

2015-03-20 21:38:45 513

原创 自定义View入门

这几天一直在学习自定义View,跟着鸿洋的博客做了自定义控件入门的例子,今天也来说说自定义控件的那些事。   我们之所以要自定义控件,就是因为android提供的默认控件不符合我们实际的需求,我们需要给控件加上我们需要的属性。自定义view在开发中使用很多,对于我这种新手程序员来说学好还是很重要的。     首先我们来了解一下自定义控件的大概的步骤。 1。自定义的属性 2。在V

2015-03-10 21:09:12 568

原创 简单聊聊onMeasure

最近在学习自定义View,其中的onMeasure方法一直不是很理解,今天练习了一下,下面写一下自己的一些体会首先,protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)方法有两个参数,我们就先只说其中的一个,因为两个意思是差不多的,对比理解即可。      widthMeasureSpec虽然看起来只是一

2015-03-04 20:57:03 549

原创 DrawerLayout和ActionBar实现侧滑菜单和Tab页

现在很多APP的布局都是使用了侧滑菜单,实现侧滑菜单有很多的方式,像开源的SlidingMenu和PagerSlidingTabStrip。同时谷歌官方也在support-v4的包中提供了相应的原生控件DrewerLayout。下面来学习使用这个控件,并结合ActionBar实现Tab的侧滑功能。 先来看一下最终的效果图。     看一下项目的基本结构ActionBarTa

2015-03-02 15:42:41 1681

原创 Eclipse常用的快捷键

Alt+/内容辅助提示键——列出相关内容Ctrl+shift+o导入所需的所有类包//Ctrl+1对现有错误的n中解决方案Crtl+d删除所在行或者全部CTRL+alt+上下键上下复制Crtl+shift+x变成大写Crtl+shift+y变成小写//Ctrl+i让光标到默认代码位置。Alt+上下键移动一行代码。Ctrl+/

2015-02-14 21:09:37 461

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除