自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xuezhe__的博客

努力+动脑

  • 博客(24)
  • 资源 (16)
  • 收藏
  • 关注

原创 adb install 流程分析

在Android系统中,应用的文件是以 .apk为结尾的文件,这个文件是如何被安装到Android系统中的? 那就是利用 adb install 这个命令, 大家可以在命令行内 打入 adb install <.apk文件路径> 进行安装。下面我们来分析它的原理。首先该命令对应代码在commandline.cpp内,内容如下:int adb_commandline(int argc, const c

2017-06-21 14:05:17 6574 5

原创 Android Binder Java

在阅读本文章前,如果读者还没有阅读过《android Binder Native》,强烈建议先去阅读这篇文章,否则你可能有的地方会不明白。如果你已经读过了上篇文章,那么对于BpBinder、BBinder应该有了一定了解,在Java层的Binder也是一个C/S架构,而且在命名上尽可能的保持与Native层一致,所以大家可以认为,Java Binder 是Native Binder的一个镜像版

2017-06-08 15:53:54 668

原创 Android Binder Native

我们要知道,Android系统基本上可以看做是一个基于Binder通信的C/S架构,Binder把Android系统的各个部分都连在了一起,所以它的重要不可言喻,我们有必要掌握好它。 Binder是Android系统提供的一种 “ 进程间通信(IPC)” 机制。在基于Binder的C/S**(Client、Service)架构中除了 **Client和Service端外、Android还有一个S

2017-06-07 18:25:44 640

原创 GRecyclerView

这次我给大家介绍一个RecyclerView。可以说,如果你使用它 你不用在写adapter, 分割线. 刷新、加载等.如果你想使用的话 , 那么很简单以下是正常使用的 adapter.  也称为 normal adapter,     setListener 和 onItemClick 如果不需要 可以不用覆写。 /** * nomr

2016-06-08 22:35:14 542

原创 Android 6.0 动态权限申请

在Android6.0中,引入了动态申请权限机制。 以前我们在申请权限的时候,都是写在了Manifest.xml里面。 安装的时候会有一堆提示申请权限的界面, Google 可能想到用户可能并不注意这些权限。 so~ 就迎来了 动态权限机制。请注意,如果你使用了API 23以上, 然而并没有用代码处理权限问题。 那么你的程序将会 CRASH !!!下面我们来看看到底哪些权限

2016-05-30 22:28:09 21330 7

原创 EventBus替代品, RxBus.

由于最近Rxjava 很是火爆, 所以也不得不去学习了 Rxjava 这个非常牛逼的框架。下面我们来用Rxjava实现 EventBus, 我们称它为 RxBus.我们正常使用Rxjava的时候, 基本都是用以下三个基本创建方式.Observable.create()Observable.just()Observable.from()1. 传递一个OnSubscribe

2016-05-17 13:07:57 1704

原创 View显示原理剖析

首先我们要知道,Android程序的主入口是 ActivityThread 的 main函数中,所有应用程序 有且仅有一个ActivityThread.public static void main(String[] args) { ..... ..... Looper.prepareMainLooper(); ActivityT

2016-04-22 15:01:01 611

原创 打造 RecyclerView的 通用Adapter

现在越来越多的人都开始用RecyclerView,  在此, 我也是推荐大家尽快去把ListView换成RecyclerView.RecyclerView的好处有很多 比如:1. 灵活的在ListView、GridView、瀑布流中来回切换. 只需要setLayoutManager. 非常方便.2. 可以自定义添加分割线.3. 可以自定义增加、删除item 的动画.4. 不用在

2016-04-15 10:05:16 427

原创 Android 项目 上传至 Jcenter.

平时我们在AndroidStudio中开发,使用依赖包的时候总是像下面这样.compile 'com.android.support:recyclerview-v7:23.3.0'又或者是点击项目的Project Structure 来 add library dependency.然而这些东西是从哪里来? 为何直接就可以使用?  原因是因为 他们存在于 maven j

2016-04-15 09:35:02 398

原创 android 源码下载、编译.

最近突然想弄弄源码, 所以按照官方的教程弄了弄..  奈何我英语不怎么好(也就1级水平,泪奔~~~) ,所以鼓捣了我4天左右才把源码弄出来.并成功在模拟器上运行..  为了方便大家 下载编译,  总结一篇来特别说明下.首先,Android源码的编译是要在Linux、Mac 下进行的, Windows并不支持.为了这个我特意弄了个双系统, 另一个弄了Ubuntu 64位的 好用~~

2016-04-03 14:38:27 621

原创 android touch事件解析 (从wms到viewgroup)

不多说,进入正题:关于Android中的Touch事件分发, 分为 服务端WindowManagerService(WmS,以下都以WmS简称), 负责采集与分发. 经过一些列调用, 会分发到client端 viewrootimpl中, 然后viewrootimpl进行client端的touch事件分发首先我们要知道的是,在WmS启动后,经过逐层调用,会在nativ

2016-03-25 12:04:06 1210

原创 隐藏软键盘方法

有的时候,我们会接受到一些莫名的需求,比如说自己定制键盘, 计算器等等. 如果我们用EditText的话, 系统会默认弹出软键盘,为了需求需要。 我们需要想尽各种办法 来把系统的软件盘给隐藏掉.    现在网上有很多隐藏软键盘的方法,如

2016-03-01 11:36:20 1385

原创 关于 eclipse项目 导入 android studio 中 出现的图片报错问题解决。

在我们把项目 从eclipse 转向 androidstudio的时候, 莫名的总会出现图片编译不通过的事情, 原因是因为Google加强了对图片的监管, 下面我们来分析图片出现的错误及解决方案。错误 1:, 这肯定是图片命名问题啦。  自己找去~。错误2 :  ,具体原因不说了. 解决方法:下载ImageMagick Display ,  下载安装完成后,

2016-01-30 11:25:10 1875

原创 关于窗口创建的那些事 之 内核剖析 读笔

先来说说窗口创建的过程.从Wms的角度来看,窗口是一个View, Wms收到用户消息后, 需要把消息派发到View窗口, View本身不能接受消息, 真正接受用户消息的是 IWindow类, 而实现IWindow类的是 ViewRoot.W类, 每一个W类 内部都包含了一个View变量.Wms把消息发送给W, W发送给View,之后由View自己处理.窗口也是有很多种的.

2015-12-25 14:59:34 452

原创 Context 之 内核剖析 读笔

我们先来看一眼Context的类继承关系可以看到,Activity 与 Service 都是context.我们首先来说下ContextWrapper,  顾名思义 , wrapper 译为 "包裹", So~ ContextWrapper 只是对Context的一个包裹作用. ContextThemeWrapper. 看Theme我们就可以知道它是与 主题相关的.  想到

2015-12-24 21:16:41 519

原创 Framework 之 内核剖析 读笔

Framework定义了客户端组建和服务端组建功能接口.Framework框架中主要包含三个部分: 服务端、客户端、Linux.关于服务端:  服务端有两个重要的类, WindowManagerService(WMS)、ActivityManagerService(AMS).  WMS 主要作用是 按照顺序叠放各个窗口.隐藏、显示.   AMS  主要作用是管理所有

2015-12-24 15:01:04 590

原创 Binder 之 内核剖析 读笔

注: 所有图片来自  内核剖析中!Binder 意味 别针,回形针.  在Android中, Binder用于完成 进程间通讯(IPC)Binder框架 : Binder是一种架构,  分为 服务端. Binder驱动,客户端3个模块,    一个Binder服务端就相当于一个Binder类对象,一旦该对象被创建,就会启动一个隐藏线程, 该线程会接受Binder驱动

2015-12-23 14:13:20 553

原创 Linux 文件系统、启动过程 之 内核剖析 读笔

在Linux中 文件系统有两个概念,  分别是 "根文件系统(Root File System)","存储类文件系统".       存储类系统的概念与windows基本相同,而  根文件系统就差别有点大了.1. “文件”上不指硬盘上的数据,它还包括任何的资源设备.U盘、磁盘、内存、网络等等.2.    操作系统只能

2015-12-18 12:41:07 488

原创 android jni使用

JNI 作用:    是为了让 java代码 能调用c写的代码.使用方法. :   先在我们的java类中 把 native 方法定义好, 例如 : public native String javaCallC();然后我们进入dos,  如果你的工具是 android studio, 我们切换到工程的 java目录下, 然后使用 javah 包名+类名    生成一

2015-10-13 23:01:17 511

原创 android自定义控件 橡皮擦

先来张效果图哈,  我们可以在上面随意的擦擦擦~~~~先跟大家讲一下实现的原理哈,  这里我们主要用到了 paint.setXfermode(PorterDuffXfermode portermode) ,设置画笔的混合模式,这里模式有十多种, 我就不贴图了. 大家可以自行百度~~思路 :我们需要自己的new Canvas(bitmap) 来注入前景bitmap, 在o

2015-08-11 15:34:43 738

原创 android自定义控件 水波纹效果

效果图: 这是今天我们要实现的一个效果:  一个自定义的VIEW .要知道 我们画圆需要重写 父类的 onDraw(Canvas canvas) 方法, 用 canvas 来画圆, 然而画圆需要 cx,cy,radio,paint.(圆心x,圆心y,半径,画笔)..首先我们要重写 父类 onDraw()  和onTouchEvent()事件, 在onTouch 里判断 Acti

2015-05-28 20:31:21 650

原创 android自定义控件 悬浮小火箭 (类似腾讯手机卫士)

效果图 : 这种效果类似腾讯安全卫士的小火箭.. ps:图也是在那里盗的= ,=小火箭 是常驻在后台的. 所以我们在服务里面写逻辑,要实现这种效果. 我们要知道火箭 是悬浮在窗体上的. 这时我们需要WindowManager服务的addView 来实现需注意 弹出窗体 需要系统权限. 下面贴代码  主Activity : 用于

2015-05-27 22:47:36 1470

原创 android自定义控件 多点触控(实现图片自由缩放)

由于需要真机测试, 所以没有弄效果图..1, 建立一个类MultiTouch  继承 ImageView, 并在xml使用, 获取要缩放图片. 如果图片的宽/高大于屏幕宽/高, 那么我们进行缩放,并移动到屏幕中心点.    那么问题来了. 如果我们在构造器中直接获取宽度 那么可能会获取不到. 我们需要知道布局什么时候加载完成. 这时候就需要用到一个接口 OnGlobalLayout

2015-05-26 14:40:29 686

原创 android自定义控件 侧滑菜单(仿QQ)

效果图:这个效果是类似QQ客户端滑动那样的效果, 应该说差不多一样把.实现原理: 自定义一个 view 继承 HorizontalScrollView(因为它可左右滑动).    view 里面包含 两个布局, 一个在左边(菜单layout),另一个右边(主layout), 通过重写父类方法 来实现 侧滑功能下面贴布局文件: <RelativeLayout xmlns:

2015-05-25 09:09:13 841

Markdownpad2 专业版

markdownpad2专业版,可以使用所有功能 安装之后记得阅读readme文件。

2018-11-15

算法4(高清 中文版 小红本)

学习算法必备书籍,内涵大量算法练习(排序 查找 等等)..

2018-04-26

Essential C++ (高清 中文版)

零基础学习C++必备书籍,想学习C++的朋友请下载,非常不错的一个资源。

2018-04-26

图解HTTP 完整版

内容结合了 大量图片 生动形象的讲解了 Client和Server之间的关联。

2017-10-26

深入理解Java虚拟机 第二版

了解、深入java的必备书籍,主要讲解了虚拟机相关的内容。

2017-10-26

Linux内核设计与实现 第三版

Linux内核设计与实现,学习Linux内核的人看,推荐大家看该书。

2017-10-10

Linux内核情景分析

Linux内核情景分析,适用于想要学习Linux内核的人看。

2017-10-10

重构 改善既有代码的设计

该书讲述了如何进行代码重构,有大量例子进行讲解,是不可多得的一本好书。

2017-10-10

Android性能优化

Android 性能优化书籍,Android开发人员应该看的一本书。

2017-10-10

深入理解Android 卷2

深入理解Android 2, 资深Android应该看的书籍,了解Framework必备。 深入理解Android 2, 资深Android应该看的书籍,了解Framework必备。

2017-09-14

Head First 设计模式

Java设计模式书籍,推荐看。 Java设计模式书籍,推荐看。 Java设计模式书籍,推荐看。 Java设计模式书籍,推荐看。

2017-09-14

深入探索Android热修复原理

手淘技术人员写的 热修复实现细节, 主要讲解热修复技术原理。不可多得的一本好书。 手淘技术人员写的 热修复实现细节, 主要讲解热修复技术原理。不可多得的一本好书。

2017-09-14

Java并发编程实践 中文版

Java并发必备书籍, 带你了解多并发多线程, 高级程序员必看书籍。\ Java并发必备书籍, 带你了解多并发多线程, 高级程序员必看书籍。

2017-09-14

HTTP权威指南中文版

HTTP权威指南,HTTP入门必备。HTTP权威指南,HTTP入门必备。HTTP权威指南,HTTP入门必备。HTTP权威指南,HTTP入门必备。

2017-09-14

深入理解Android 卷1

邓平凡著作深入理解Android模块,邓平凡著作深入理解Android模块,邓平凡著作深入理解Android模块,邓平凡著作深入理解Android模块,

2017-09-13

无软键盘弹出EditText

android无软键盘弹出的EditText, 获取焦点也不会弹出.

2016-03-08

空空如也

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

TA关注的人

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