- 博客(298)
- 资源 (12)
- 收藏
- 关注
原创 Android深入理解JNI(二)类型转换、方法签名和JNIEnv
上一篇文章介绍了JNI的基本原理和注册,这一篇接着带领大家来学习JNI的数据类型转换、方法签名和JNIEnv。
2017-07-03 00:04:36 11624 1
原创 React Native组件(二)View组件解析
了解了RN的组件的生命周期后,我们接着来学习RN的具体的组件。View组件是最基本的组件,也是首先要掌握的组件,这一篇我们来学习View组件。
2017-06-27 10:57:46 5499
原创 Android内存优化(三)避免可控的内存泄漏
内存泄漏向来都是内存优化的重点,它如同幽灵一般存于我们的应用当中,有时它不会现身,但一旦现身就会让你头疼不已。因此,如何避免、发现和解决内存泄漏就变得尤为重要。这一篇我们先来学习如何避免内存泄漏。
2017-06-21 00:12:44 4090 2
原创 Android深入理解JNI(一)JNI原理与静态、动态注册
JNI不仅仅在NDK开发中应用,它更是Android系统中Java与Native交互的桥梁,不理解JNI的话,你就只能停留在Java Framework层。这一个系列我们来一起深入学习JNI。
2017-06-19 11:39:21 23141 2
原创 React Native组件(一)组件的生命周期
React Native有很多组件比如Image、ListView等等,想要合理的使用组件,首先要先了解组件的生命周期。
2017-06-16 00:14:13 4329 2
原创 Android内存优化(二)DVM和ART的GC日志分析
在Java虚拟机(三)垃圾标记算法与Java对象的生命周期这篇文章中,提到了Java虚拟机的GC日志。DVM和ART的GC日志与Java虚拟机的日志有较大的区别,这篇文章就对DVM和ART的GC日志进行分析。
2017-06-13 00:10:00 7858 1
原创 Android深入理解Context(二)Activity和Service的Context创建过程
上一篇文章我们学习了Context关联类和Application Context的创建过程,这一篇我们接着来学习Activity和Service的Context创建过程。需要注意的是,本篇的知识点会和深入理解四大组件系列的部分文章的知识点相重合。
2017-06-12 00:08:56 4337
原创 React Native探索(五)使用fetch进行网络请求
React Native可以使用多种方式来请求网络,比如fetch、XMLHttpRequest以及基于它们封装的框架,fetch可以说是替代XMLHttpRequest的产物,这一节我们就来学习fetch的基本用法。
2017-06-07 00:13:56 11167 4
原创 Android内存优化(一)DVM和ART原理初探
要学习Android的内存优化,首先要了解Java虚拟机,此前我用了多篇文章来介绍Java虚拟机的知识,就是为了这个系列做铺垫。在Android开发中我们接触的是与Java虚拟机类似的Dalvik虚拟机和ART虚拟机,这一篇我们就来了解它们的基本原理。
2017-06-05 00:24:14 12247 4
原创 Android深入理解Context(一)Context关联类和Application Context创建过程
Context也就是上下文对象,是Android较为常用的类,但是对于Context,很多人都停留在会用的阶段,这个系列会带大家从源码角度来分析Context,从而更加深入的理解它。
2017-06-01 00:32:20 4457 2
原创 React Native探索(四)Flexbox布局详解
在Android开发中我们有很多种布局,比如LinearLayout和RelativeLayout,同样在React Native也有它的布局,这个布局就是Flexbox布局。在CSS、React Native和Android等都有它的身影。这一篇文章,我们就通过各种小例子来掌握React Native中的Flexbox布局。
2017-05-31 00:25:21 4212
原创 Java虚拟机(四)垃圾收集算法
在本系列上一篇文章中我讲到了垃圾标记算法,垃圾被标记后,GC就会对垃圾进行收集,垃圾收集有很多种算法,这篇文章就来介绍常用的垃圾收集算法的思想。
2017-05-23 00:55:35 2736 3
原创 Android深入四大组件(五)Content Provider的启动过程
Content Provider做为四大组件之一,通常情况下并没有其他的组件使用频繁,但这不能作为我们不去深入学习它的理由。关于Content Provider一篇文章是写不完的,这一篇文章先来介绍它的启动过程。
2017-05-22 01:09:50 5712 1
原创 React Native探索(三)组件的Props(属性)和State(状态)
在Android或者iOS开发中我们会用到很多控件,这些控件会有很多的属性、样式等等。同样的,React Native中的组件也有属性、样式和状态。
2017-05-17 13:35:53 3727 3
原创 Java虚拟机(三)垃圾标记算法与Java对象的生命周期
这一节我们来简单的介绍垃圾收集器,并学习垃圾标记的算法:引用计数算法和根搜索算法,为了更好的理解根搜索算法,会在文章的最后介绍Java对象在虚拟机中的生命周期。
2017-05-16 11:36:04 2951 2
原创 Android深入四大组件(四)广播的注册、发送和接收过程
我们接着来学习Android四大组件中的BroadcastReceiver,广播主要就是分为注册、接收和发送过程。建议阅读此文前请先阅读《Android深入理解四大组件系列》的文章,知识重复的部分,本文不再赘述。
2017-05-11 14:21:53 4130 4
原创 React Native探索(二)Atom+Nuclide安装、配置与调试
上一篇文章我们搭建了开发环境,并写了个Hello World。这一节我们来学习React Native的开发IDE:Atom+Nuclide的安装、配置与调试。本文所讲的内容只适用于Mac平台。
2017-05-08 12:12:12 6745 1
原创 Java虚拟机(二)对象的创建与OOP-Klass模型
在前一篇文章中我们学习了Java虚拟机的结构原理与运行时数据区域,那么我们大概知道了Java虚拟机的内存的概况,那么内存中的数据是如何创建和访问的呢?这篇文章会给你答案。
2017-05-04 11:43:18 5601 2
原创 React Native探索(一)环境搭建与Hello World(Windows/Mac)
目前关于React Native的教程很多,官方文档写的也不错,但是感觉大部分教程写的不是很清楚,导致我各种碰壁。因此我来写一个简洁的教程。本篇文章基于React Native 0.43,只适用于用Windows平台的Android开发者。
2017-05-02 12:39:52 4343 5
原创 Android深入四大组件(三)Service的绑定过程
我们可以通过调用Context的startService来启动Service,也可以通过Context的bindService来绑定Service,建议阅读此篇文章前请阅读《Android深入四大组件(二)Service的启动过程》这篇文章,知识点重叠的部分,本篇文章将不再赘述。
2017-04-28 11:37:00 3641
原创 Android深入四大组件(二)Service的启动过程
此前我们用较长的篇幅来介绍Android应用程序的启动过程(根Activity的启动过程),这一篇我们接着来分析Service的启动过程。建议阅读此篇文章前,请先阅读Android深入四大组件(一)应用程序启动过程(前篇)和Android深入四大组件(一)应用程序启动过程(后篇)这两篇文章。
2017-04-24 11:52:39 3642 2
原创 Java虚拟机(一)结构原理与运行时数据区域
本来计划要写Android内存优化的,觉得有必要在此之前介绍一下Java虚拟机的相关知识,Java虚拟机也并不是三言两语能够介绍完的,因此开了Java虚拟机系列,这一篇文章我们来学习Java虚拟机的结构原理与运行时数据区域。
2017-04-21 13:10:38 5505 4
原创 设计模式(十五)状态模式
建议在阅读本文前先阅读设计模式(十一)策略模式这篇文章,虽说状态模式和策略模式的结构几乎是相同的,但是它们所解决的问题是不同的,读完这两篇文章你就会有了答案。
2017-04-17 12:10:59 2790
原创 Android深入四大组件(一)应用程序启动过程
在此前的文章中,我讲过了Android系统启动流程和Android应用进程启动过程,这一篇顺理成章来学习Android 7.0的应用程序的启动过程。分析应用程序的启动过程其实就是分析根Activity的启动过程。
2017-04-06 14:01:30 7920 7
原创 Android绘制优化(二)布局优化
我们知道一个界面的测量和绘制是通过递归来完成的,减少布局的层数就会减少测量和绘制的时间,从而性能就会得到提升。当然这只是布局优化的一方面,那么如何来进行布局的分析和优化呢?本篇文章会给你一个满意的答案。
2017-03-27 11:18:05 3867 3
原创 Android应用程序进程启动过程(后篇)
在前篇中我们讲到了Android应用程序进程启动过程,这一篇我们来讲遗留的知识点:在应用程序进程创建过程中会启动Binder线程池以及在应用程序进程启动后会创建消息循环。
2017-03-21 00:54:49 4769
原创 Android应用程序进程启动过程(前篇)
在此前我讲过Android系统的启动流程,系统启动后,我们就比较关心应用程序是如何启动的,这一篇我们来一起学习Android7.0 应用程序进程启动过程,需要注意的是“应用程序进程启动过程”,而不是应用程序启动过程。关于应用程序启动过程,我会在后续系列的文章中讲到。希望阅读这篇文章前先阅读本文列出的相关文章,要不你一脸蒙蔽,就别怪我了。
2017-03-20 11:06:05 18398 4
原创 Android绘制优化(一)绘制性能分析
一个优秀的应用不仅仅是要有吸引人的功能和交互,同时在性能上也有很高的要求。运行Android系统的手机,虽然配置在不断的提升,但仍旧无法和PC相比,无法做到PC那样拥有超大的内存以及高性能的CPU,因此在开发Android应用程序时也不可能无限制的使用CPU和内存,如果对CPU和内存使用不当也会造成应用的卡顿和内存溢出等问题。因此,应用的性能优化对于开发人员有着更高的要求。Android性能优化分为很多种,比较常用的
2017-03-13 11:40:26 11121 1
原创 设计模式(十四)中介者模式
写了很多篇设计模式的文章,才发现没有讲关于设计模式的分类,那么这一篇就补上这一内容,顺便带来中介者模式的讲解。并与此前讲过的代理模式和外观模式做对比。
2017-03-06 12:31:56 6691 2
原创 算法(三)初等排序后篇[选择和冒泡排序]
根据上一篇文章讲到的插入排序和希尔排序,我们把选择排序的数组也分为已排序部分和未排序部分。在用图来讲解选择排序之前,我们要先了解选择排序的规则。
2017-03-02 12:42:23 2581 4
原创 Android系统启动流程(四)Launcher启动过程与系统启动流程
此前的文章我们学习了init进程、Zygote进程和SyetemServer进程的启动过程,这一篇文章我们就来学习Android系统启动流程的最后一步:Launcher的启动流程,并结合本系列的前三篇文章的内容来讲解Android系统启动流程。建议读这篇文章前要通读本系列的前三篇文章,否则你可能不会理解我在讲什么。
2017-02-23 13:59:38 25019 11
原创 算法(二)初等排序前篇[插入和希尔排序]
排序有很多种方法,有些方法实现起来很简单,但是效率较差,我们可以将这些排序的方法称之为初等排序。这篇文章我们就来学习初等排序中的插入排序和希尔排序。
2017-02-18 12:30:00 3268 2
原创 Android系统启动流程(三)解析SyetemServer进程启动过程
上一篇我们学习了Zygote进程,并且知道Zygote进程启动了SyetemServer进程,那么这一篇我们就来学习Android7.0版本的SyetemServer进程。
2017-02-15 12:08:59 8256 4
原创 Android系统启动流程(二)解析Zygote进程启动过程
上一篇文章我们分析了init进程,init进程中主要做了三件事,其中一件就是创建了Zygote进程,那么Zygote进程是什么,它做了哪些事呢?这篇文章会给你这些问题的答案。
2017-02-13 12:37:06 11511 1
原创 算法(一)时间复杂度
算法很重要,但是由于做移动开发并不经常用到,所以很多同学早就将算法打了个大礼包送还给了老师了,况且很多同学并没有学习过算法。这个系列就让对算法头疼的同学能快速的掌握基本的算法。过年放假阶段玩了会游戏NBA2K17的生涯模式,没有比赛的日子也都是训练,而且这些训练都是自发的,没有人逼你,从早上练到晚上,属性也不涨,但是如果日积月累,不训练和训练的人的属性值就会产生较大差距。这个突然让我意识到
2017-02-09 11:48:04 161811 37
原创 Android系统启动流程(一)解析init进程启动过程
作为“Android框架层”这个大系列中的第一个系列,我们首先要了解的是Android系统启动流程,在这个流程中会涉及到很多重要的知识点,这个系列我们就来一一讲解它们,这一篇我们就来学习init进程。
2017-02-07 11:29:48 41013 7
原创 设计模式(十三)抽象工厂模式
此前讲解过简单工厂模式和工厂模式,这一篇我们来学习工厂系列的最后一个模式抽象工厂模式,建议在阅读此文前,请先阅读[设计模式(四)简单工厂模式]
2017-02-06 13:26:06 2942
原创 设计模式(十二)享元模式
享元模式是结构型设计模式的一种,是池技术的重要实现方式,它可以减少应用程序创建的对象,降低程序内存的占用,提高程序的性能。
2017-02-05 13:31:41 4474 9
原创 Android系统架构与系统源码目录
技术博客终于可以恢复正常的更新速度了,原因是我编写的进阶书籍的初稿已经完成,窃以为它将会是Android应用书籍中最有深度的一本,可以说是《Android开发艺术探索》的姊妹篇。在这本书的最后一章我会分析Android底层源码,但是毕竟是一本Android应用开发的书,对于底层源码阅读也只能带大家入个门。因此,在博客中我会新开一个“系统源码解析”的系列,该系列的开篇就是本篇文章。
2017-01-23 18:09:56 73202 27
MyTabLayout2
2015-12-27
MyTabLayout
2015-12-27
MoonToolbar2
2015-12-04
MoonToolbar
2015-12-02
MyNotification
2015-11-29
MyCardView2
2015-11-27
RecyclerView
2015-11-25
MyRecyclerView
2015-11-25
Gson免费下载(包含开发包,源码,文档)
2015-04-21
GSON免费下载
2015-04-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人