自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 ActivityManagerService启动过程分析

之前讲Android的View的绘制原理和流程的时候,讲到过在Android调用setContentView之后,Android调用了一个prepreTravle的方法,这里面就提到了ActivityManagerService。ActivityManagerService提供的主要功能:    ...

2016-08-29 21:02:54 4338 0

原创 ViewPager 实现 Galler 效果, 中间大图显示,两边小图展示(优化篇)

上一张效果图: 之前的项目有一个Galley的项目,但是代码结构特别乱,别问我为什么,我也是刚接手这个项目,为了方便以后阅读和维护我对一些模块进行了重构。ViewPager实现Galler效果,但是当时时间比较急,写的比较仓促,上一篇实现了简单的效果,但是对于初始的时候左边滑动是有问题的,这是...

2016-08-27 22:36:55 7957 7

原创 ViewPager 实现 Galler 效果, 中间大图显示,两边小图展示

正常情况下, ViewPager 一页只能显示一项数据, 但是我们常常看到网上,特别是电视机顶盒的首页经常出现中间大图显示两端也都露出一点来,这种效果怎么实现呢?先上一张效果图: 大家第一眼肯定想到了Gallery,这是最早android图库自带的效果,现在基本不用,那有没有其他好的...

2016-08-25 20:08:46 8202 2

原创 WebStorm开发工具设置React Native智能提示

最近在做React Native开发的时候,相信大家一般会使用WebStorm,Sublime,Atom等等开发工具。二之前搞前端的对WebStorm会很熟悉,WebStorm最新版是WebStorm2016.2.1,React Native默认不能智能提示代码,githun有一个开源的插件:...

2016-08-16 20:12:57 23221 1

原创 Android 纵向跑马灯滚动效果

像淘宝和京东都会有跑马灯的效果,今天给大家贡献下以前项目的一个demo,各位看官,且看效果图。我们先定义一个Bean文件,这个实体类文件主要包含标题,内容描述,以及还有跳转的链接。LampBean public class LampBean implements Serializable { p...

2016-08-31 17:29:41 4947 3

原创 android TabLayout实现京东详情效果

Google在2015的IO大会上,给我们带来了更加详细的Material Design设计规范,同时,也给我们带来了全新的Android Design Support Library,在这个support库里面,Google给我们提供了更加规范的MD设计风格的控件。最重要的是,Android D...

2016-08-30 15:23:06 3692 0

原创 React 语法之let和const命令

let命令基本用法ES6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。{ let a = 10; var b = 1; } a // ReferenceError: a is not defined. b // 1 上面代码在代...

2016-08-30 09:18:17 16420 1

原创 2016 苹果全球开发者大会(WWDC)

纵观WWDC 2016开发者大会的全部内容,尽管本次大会没有那些新的产品发布,不过能让各位果粉的肾留到秋天,那也是苹果公司对各位果粉的关爱啊。但是对iOS开发者而言,新发布的技术还是比较不错的。主要内容包括四大系统(watchOS、tvOS、macOS、iOS 10)和Tim Cook钟爱的Swi...

2016-08-28 22:37:24 1104 0

原创 Android启动过程分析

Android系统启动过程 首先看一张Android框架结构图    Linux内核启动之后就到Android Init进程,进而启动Android相关的服务和应用。 启动的过程如下图所示:(图片来自网上,后面有地址)        一 Init进程的启动   init进程,它是...

2016-08-28 22:01:17 1569 0

原创 单例模式

单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。 这样的模式有几个好处: 1、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。 2、省去了new操作符,降低了系统内存的使用频率,减轻GC压力。...

2016-08-28 13:56:28 1813 0

转载 ECMAScript 6 入门简介

ECMAScript 6.0(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了。它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。 标准的制定者有计划,以后每年发布一次标准,使用年份作为版本。因为ES6的第一个版...

2016-08-27 09:23:52 1660 0

原创 css3动画从入门到精通

什么是css3动画? 通过 CSS3,我们能够创建动画,这可以在许多网页中取代动画图片、Flash 动画以及 JavaScript。 CSS3带来了圆角,半透明,阴影,渐变,多背景图等新的特征,轻松实现了设计稿中常见的图层样式,用简洁的代码替代图片,代替了多余的空标签。 现成的CSS3动画库...

2016-08-26 11:40:53 2247 0

原创 ReactJs和React Native的那些事

介绍  1,React Js的目的 是为了使前端的V层更具组件化,能更好的复用,它能够使用简单的html标签创建更多的自定义组件标签,内部绑定事件,同时可以让你从操作dom中解脱出来,只需要操作数据就会改变相应的dom。  2,React Native的目的 是希望我们能够使用前端的技术栈就可以创...

2016-08-25 23:47:47 8582 0

原创 CollapsingToolbarLayout使用

我们来看一下CollapsingToolbarLayout的使用场景。 CollapsingToolbarLayout 可以看到,Toolbar的标题放大并在下方显示,当我们向上滑动列表时,顶部Header部分的图片向上折叠隐藏,标题向上移动并缩小,同时以渐显式的方...

2016-08-25 20:16:59 2914 0

原创 组合模式

组合模式 组合模式(Composite Pattern)有时候又叫做部分-整体模式,允许你将对象组合成树形结构来表现“整体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。 根据《设计模式》定义:将对象组合成树形结构以表示“部分整体”的层次结构。组合模式使得用户对单个对象和使用...

2016-08-24 21:58:37 1830 1

原创 用Fiddler在Android上抓包(Http+https)

Fiddler是一个HTTP协议调试代理工具,在开发网络应用的时候经常会用到,其最基本的作用是能抓HTTP的数据包,当然它还有更高级的用法,如添加断点、修改请求与相应的数据等等。。。 抓HTTP包 安装后配置端口:Tools->Fiddler Options->Co...

2016-08-24 11:12:39 2348 0

原创 React Native之AppRegistry模块

我们在写react native的js的时候,在最后总会加上一段代码: AppRegistry.registerComponent('ReactDemo', () => ReactDemo); 代码的意思:定义了一个名为ReactDemo的新的组件(Component...

2016-08-23 20:55:03 8470 0

转载 React Native之hellWord

初始化项目工程 进入自己的工作空间然后shift+鼠标右键打开命令行窗口执行如下命令创建RN工程HelloWorld: 然后使用Android Studio打开AVD Manager创建模拟器,在打开Android Studio的时候会提示创建Android项目,我们的目的...

2016-08-23 19:53:56 1184 0

原创 React Native的WebStorm基本设置

设置.js文件默认以jsx的语法打开 在没有进行设置的情况下,每次打开WebStorm的时候打开包含jsx语法的.js文件都会有以下提示: 当然我们点击转换后就可以了,但是每次都会提示,所以还是来一个一劳永逸的方法把它给去掉吧: 然后Apply/OK即可。 设置.js文件中支持...

2016-08-23 19:52:03 20562 1

原创 React Native之样式

样式 React Native 不实现 CSS,而是依赖于 JavaScript 来为你的应用程序设置样式。这是一个有争议的决定,你可以阅读那些幻灯片,了解背后的基本原理。 声明样式 在 React Native 中声明样式的方法如下: var styles = StyleSh...

2016-08-23 19:42:26 1750 0

原创 解决在onCreate()过程中获取View的width和Height为0的方法

最近在看Android底层代码的view绘制原理的时候讲到一个很有意思的事情,也是我几年前刚开始学习Android开发的时候比较纳闷的一个问题,如果你不理解Android的底层绘制,请看我之前一片文章对View绘制的简单分析点击打开链接。 那么在onCreate()获取view的width和he...

2016-08-23 18:54:33 984 0

转载 Android热插拔事件处理详解

一、Android热插拔事件处理流程图 Android热插拔事件处理流程如下图所示:   二、组成 1. NetlinkManager:        全称是NetlinkManager.cpp位于Android 4.x 源码位置/system/vold/Netl...

2016-08-21 10:49:02 3351 1

转载 Android存储系统的架构与设计

一、概述 本文讲述Android存储系统的架构与设计,基于Android 6.0的源码,涉及到最为核心的便是MountService和Vold这两个模块以及之间的交互。为了缩减篇幅,只展示部分核心代码。 MountService:Android Binder服务端,运行在system_serv...

2016-08-21 10:44:30 2313 0

原创 android动画之interpolator和typeEvaluator用法详解

我们在写动画的时候为了达到某种效果往往需要设置插值器,用来真实的模拟生活中的场景。  Interpolator (插值器)被用来修饰动画效果,定义动画的变化率,可以使存在的动画效果accelerated(加速),decelerated(减速),repeated(重复),bounced(弹跳)等。 ...

2016-08-20 12:11:44 3073 0

原创 Android重命名包名

工程写的差不多了才发现原来用的包名还是自己尝试性的进行写代码的时候用到的。但apk的发布,google map api的申请等等方面都需要用到一个比较规范的包名。这就涉及到修改包名的问题。 包名一开始是这样的 当尝试着去修改的时候发现是这样的: 只让改最后...

2016-08-18 14:07:42 2350 0

原创 教你自己写Android第三方库

其实Android studio的出现很大程度上方便了我们Android开发人员,今天我们说说怎么构建我们自己的库。 依次按File->New Moudle->android Library就好了,这就构建了我们自己的第三方库,正好最近项目用到了沉侵式状态栏,我们就以这个未为例子来说明...

2016-08-18 10:45:04 3157 0

原创 关于React Native 报Export declarations are not supported by current JavaScript version错误的解决问题

设置.js文件默认以jsx的语法打开 在没有进行设置的情况下,每次打开WebStorm的时候打开包含jsx语法的.js文件都会有以下提示: 当然我们点击转换后就可以了,但是每次都会提示,所以还是来一个一劳永逸的方法把它给去掉吧: 然后Apply/OK即可。 设置.js文件中支持...

2016-08-16 20:03:24 16669 7

原创 React native开发中常见的错误

react native环境搭建请移步:react native环境搭建 这里说说react native创建完成之后,运行中出现的常见问题, 问题1: java.lang.RuntimeException: SDK location not found. Define location wit...

2016-08-16 18:05:25 8733 0

原创 深入理解Android IPC机制之Binder机制

Binder是Android系统进程间通信(IPC)方式之一。Linux已经拥有的进程间通信IPC手段包括(Internet Process Connection): 管道(Pipe)、信号(Signal)和跟踪(Trace)、插口(Socket)、报文队列(Message)、共享内存(Share...

2016-08-16 09:48:46 1682 1

原创 浅谈SystemClock 和Thead的区别和联系

其实将SystemClock 和Thead直接放在一起是不合适的,我们首先来看下他们所在的api。 public final class SystemClock extends Object java.lang.Object ?  android.os.Sy...

2016-08-15 16:36:22 2727 0

原创 在Windows下搭建React Native Android开发环境

安装JDK 从Java官网下载JDK并安装。请注意选择x86还是x64版本。 推荐将JDK的bin目录加入系统PATH环境变量。 安装Android SDK 可以单独安装Android SDK,也可以通过Eclipse ADT或者Android Studio一并安装。推荐使...

2016-08-15 14:02:46 2109 1

原创 Android Remote Views

听名字就可以看出,remote views是一种远程view,感觉有点像远程service,其实remote views是view的一个结构,他可以在其他的进程中显示,由于它可以在其他的进程中显示,那么他就可以跨进程的更新其他进程的view,这听起来有点不可思议,感觉有点像aidl,但是我要告诉你...

2016-08-12 11:45:43 1549 0

原创 Android View底层到底是怎么绘制的

Android绘制链图: 网上很多讲Android  view的绘制流程往往只讲到了Measure - Layout - Draw。 但是,这只是一个大体的流程,而我们需要探讨的是Android在我们调用setcontentView()之后,系统给我们干了什么事情,这个完整的逻辑是什么样...

2016-08-11 12:39:59 1752 0

转载 Android的内存分配与回收

想写一篇关于android的内存分配和回收文章的想法来源于追查一个魅族手机图片滑动卡顿问题,我们想了很多办法还是没有避免他不停的GC,所以就打算详细的看看内存分配和GC的原理,为什么会不断的GC,GC ALLOC和GC COCURRENT有什么区别,能不能想办法扩大堆内存减少GC的频次等等。 ...

2016-08-10 21:47:07 2050 0

原创 Android性能优化

讲到Android开发,就不得不谈一下Android的优化,不管是平时开发中我们需要注意的一些Android对Java的一些类的优化,还是实际开发中对性能的优化,其实早在15年的google全球大会上google就Android的性能优化就给我们做了很好的介绍:http://www.oschina...

2016-08-10 09:40:26 1672 0

原创 android 优化之布局优化

在布局优化中,Androi的官方提到了这三种布局、、,并介绍了这三种布局各有的优势,下面也是简单说一下他们的优势,以及怎么使用,简单复习下。 1、布局重用 标签能够重用布局文件,简单的使用如下: <LinearLayout xmlns:android="http://sch...

2016-08-08 22:38:46 1105 0

原创 适配器模式

适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口。adapter 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 适用场景: 1、已经存在的类的接口不符合我们的需求; 2、创建一个可以复用的类,使得该类可以与其他不相关的类或不可预见...

2016-08-08 10:21:53 1085 0

原创 SparseArray到底哪点比HashMap好

SparseArray是android里为这样的Hashmap而专门写的class,目的是提高效率,其核心是折半查找函数(binarySearch)。 HashMap底层是一个Hash表,是数组和链表的集合实现,有需要的可以去看看我关于Hashmap的分析。hashmap源码分析 所以Andr...

2016-08-06 22:57:32 7199 2

原创 开源库BaseRecyclerViewAdapterHelper

相信大家RecyclerView应该不会陌生,大多数开发者应该都使用上它了,它也是google推荐替换ListView的控件,但是用过它的同学应该都知道它在某些方面并没有ListView使用起来方便,需要我们额外的编写代码,今天就给大家介绍一个开源库BaseRecyclerViewAdapterH...

2016-08-06 22:17:49 8930 1

翻译 深入理解 JSX

JSX 是一个看起来很像 XML 的 JavaScript 语法扩展。React 可以用来做简单的 JSX 句法转换。 为什么要使用 JSX? 你不需要为了 React 使用 JSX,可以直接使用纯粹的 JS。但我们更建议使用 JSX , 因为它能定义简洁且我们熟知的包含属性的树状结构...

2016-08-06 21:09:07 1263 0

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