自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

风花散却隽世间,雪月寥落化雨田

举世誉之而不加劝,举世非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣

  • 博客(55)
  • 资源 (3)
  • 收藏
  • 关注

原创 【Android P】 JobScheduler服务源码解析(二) ——框架解析

JoScheduler服务框架分析App端从创建一个job 到调度一个Job流程是怎样的?Job在App端主要比较重要的类有四个:JobInfo,JobScheduler,JobService,JobServiceEnginepublic class JobInfo implements Parcelable { // 优先级都是内部维护的,APP不可用 // 默认的优先级 pu...

2019-05-21 09:10:32 2091 6

原创 【Android P】 JobScheduler服务源码解析(三)—— 使用Job需要注意的点

Android Job 服务在系统中算是一个比较轻量级的服务,但是推出后,被很多应用运用进去了前面两篇主要是解析Job 是怎么使用的。并且其原理如何。本篇着重于应用调试,这里会对自己使用Job 中遇到的坑,以及小技巧分享一下调试知识扩展adb shell cmd jobscheduler run -f -u 0 com.google.android.apps.turbo 106// 强制执...

2018-10-12 15:33:05 1519

原创 菜鸟带你Hook技术实战

问题上一篇文章:你想成为Android高级工程师你还得学习Hook中我们提了一个问题: 我们如果要启动一个activity,我们的做法是1. 在AndroidManifest.xml中声明一个Activity 2. startActivity,如果不在AndroidManifest.xml中声明,启动activity会报错(android.content.ActivityNotFoundEx...

2018-03-19 10:51:01 2483

原创 你想成为Android高级工程师你还得学习Hook

目的这篇文章是让大家体会hook技术大概是什么样子,在那些地方可以应用到。后面文章将深入hook技术,以及解析市面上现有的hook开源框架原理。在前面的文章中我们已经说过什么是代理模式,那我们就先使用最简单的静态代理模式应用在我们的hook技术中。我们先复习一下静态代理模式。/** * 定义Demo接口 */ public interface Demo { ...

2018-03-15 10:33:48 535

原创 【原创】Android 耗电信息统计服务——BatteryStats源码分析(一)

Android 耗电信息统计服务——BatteryStats源码分析(一)概述Android 中关于耗电的统计一般是关于功耗分析的重要信息,Bettery-historian工具也是依托于解析BatteryStats 的dump 信息来提供界面直观分析,并且电池电量耗费的源头实在太多,基本Android 设备上任何一个活动都会引起电池电量的消耗,Android 在统计电量上也在不断完善

2018-01-12 15:05:12 10315 3

原创 Android 7.0之JobScheduler 分析(一)——如何使用job

背景最近公司好多人都因为Jobscheduler的使用不当导致各种问题,Job定时任务不生效或者冲突。归根结底是对Jobscheduler的使用不熟悉以及,其工作原理没有一个系统性的了解。本人也曾踩坑,所以下定决心好好熟悉Jobscheduler。 概述   在android开发中经常会有这样的需求,开发者需要在稍后的某个时间点或者满足某个特定的条件时去执行某个任务,例如当设备开始充电,或者

2017-10-19 22:13:52 8218

原创 Android 系统7.0上 屏幕背光流程分析

Android 系统 屏幕背光流程分析(未完待续)概述自动背光初始化自动背光的初始化概述最近关于自动背光的问题报的比较多,多是背光不灵敏以及背光调节不正常的问题,并且自动背光也是直接和用户交互的一个模块,对于用户体验有着最直观的影响,所以在此分析一下关于自动背光模块的处理逻辑,以及小米对于自动背光所作的优化,关于后期优化方案,也希望大家能多多建议。自动背光在android系统中属于displ

2017-03-02 09:16:45 11743 2

原创 (原创)Android6.0亮屏流程分析

Android的亮屏流程从android系统结构层次来分可以分为三个流程,App应用唤醒源;Framework层Power结合Display,Light服务做亮屏绘制准备工作;底层驱动点亮背光灯。这里重点分析一下Framework层亮屏的一系列准备工作流程。

2016-11-17 20:06:42 7898 4

原创 (原创)Android6.0亮屏流程之Keyguard Window绘制

其实在看过另外一篇关于android亮屏流程的文章就会发现,影响亮屏快慢的因素大致有三种:1.设置背光流程出问题了,导致屏幕黑屏,2.window绘制时间过长,导致屏幕block时间过长;3.底层surfacecontroller准备时间过长。

2016-11-15 18:02:00 5313 28

原创 (原创)android6.0系统 Doze模式(DeviceIdle)实现与控制逻辑

DeviceIdleController的实现逻辑1.服务启动 21.1SystemServer.java启动阶段 21.2准备阶段 52. 进入Idle模式 62.1进入idle模式的流程 63. 状态变化的驱动因素 104.进入Idle模式后的处理 104.1对于PowerManager的限制 114.2对网络的限制 134.3 Alarm限制

2016-08-02 10:40:08 8681 4

原创 (原创)android6.0系统Healthd深入分析

概述Healthd是android4.4之后提出来的一种中介模型,该模型向下监听来自底层的电池事件,向上传递电池数据信息给Framework层的BatteryService用以计算电池电量相关状态信息,BatteryServcie通过传递来的数据来计算电池电量显示,剩余电量,电量级别等信息,如果收到过温报警或者严重低电报警等信息,系统会直接关机,保护硬件。主模块处理流程Heal...

2016-04-07 09:09:13 9759 5

原创 (原创)android6.0系统 PowerManager深入分析

概述一直以来,电源管理是电子产品设计中非常重要的环节,也是任何电子设备中最为重要的系统模块之一,优秀的电源管理方案,能够提供持久的续航能力,良好的用户体验,更能提升电子产品的竞争力。移动设备的电量主要由两种元件消耗:CPU和显示屏,因此设法降低这两种元件的耗电量就是电源管理的关键,为移动设备设计的CPU大多有两种工作频率,为了省电,大部分时间内cpu都工作在降低频率下,只有进行密集计算时,如视频解...

2016-04-01 09:49:43 14870 20

原创 Okhttp的源码解读

重要的类 类名 描述 OkHttpClient OkHttp请求客户端,Builder模式实现 Dispatcher 本质是异步请求的调度器,负责调度异步请求的执行,控制最大请求并发数和单个主机的最大并发数,并持有有一个线程池负责执行异步请求,对同步请求只是作统计操作。 Request 封装网络请求,就是构建请求参数(如url,header,请...

2018-04-08 15:59:03 423

原创 Retrofit原理解析最简洁的思路

retrofit 已经流行很久了,它是Square开源的一款优秀的网络框架,这个框架对okhttp进行了封装,让我们使用okhttp做网路请求更加简单。但是光学会使用只是让我们多了一个技能,学习其源码才能让我们更好的成长。本篇文章是在分析retrofit的源码流程,有大量的代码,读者最好把源码下载下来导入IDE,然后跟着一起看,效果会更好 源码下载地址retrofit入门...

2018-03-27 17:48:04 5420 2

原创 BAT面试题集锦——Java基础(二)

BAT TMD这些大厂对员工的技术要求都比较高,但是一般面试都会从基础开始,基础面不通过后面的自然不行。而且基础知识都是可以深度挖掘的,遇到那种喜欢从基础知识挖掘的面试官,基础不行肯定面试不通过。所以我们继续为大家整理基础面试的知识点,作为抛砖引玉,希望您能有所收获。1、问:Java接口存在的意义是什么?答:重要性:在Java语言中, abstract class 和...

2018-03-22 15:02:15 897

原创 BAT面试题集锦——Java基础(一)

一、java面试题熟练掌握java是很关键的,大公司不仅仅要求你会使用几个api,更多的是要你熟悉源码实现原理,甚至要你知道有哪些不足,怎么改进,还有一些java有关的一些算法,设计模式等等。(一) java基础面试知识点 java中==和equals和hashCode的区别\==是运算符,用于比较两个变量是否相等。一般用于基本类型的比较equals,是Objec类的方法...

2018-03-20 18:08:46 5341 4

原创 Android进阶之注解解析和自定义注解

一:元注解元注解的作用就是负责注解其他注解1.@Target 说明: 用来指明注解所修饰的目标,包括packages、types(类、接口、枚举、Annotation类型)、类型成员(方法、构造方法、成员变量、枚举值)、方法参数和本地变量(如循环变量、catch参数) 取值: 值 作用 英文描述 CONSTRUCTOR 用于描...

2018-03-13 14:02:41 822

原创 Android进阶必学:自定义注解之反射

Android端因为反射效率低,所以不能高频使用反射技术,但是有些场景下反射却还是能帮助你实现功能很方便。一般在注解的时候就会用到注解所以本文为大家介绍一下反射功能,希望能帮助大家学习。所用到的类java.lang.Classjava.lang.reflect.Constructorjava.lang.reflect.Fieldjava.lang.reflect.Met...

2018-03-12 10:32:28 354

原创 Android进阶必学:自定义注解之动态代理

自定义注解是Android进阶的必学知识,从现在起我讲为大家带来四篇文章,让大家彻底学会自定义注解静态代理大家都明白,就是相当于包装了一次,在包装这一次的时候可以加一些业务逻辑。同样静态代理的特点是一个接口对应一个代理类,当然委托类可以多个。静态代理/** * 定义Demo接口 */ public interface Demo { public ...

2018-03-09 15:53:57 1154

原创 谷歌开源跨平台UI框架——Flutter

Fluter特性介绍Flutter官网介绍如下: Flutter is Google’s mobile UI framework for crafting high-quality native interfaces on iOS and Android in record time. Flutter works with existing code, is used by devel...

2018-03-09 10:02:41 43972 3

原创 这款神器你不学就要落后了!

Flutter——谷歌开源的跨平台UI开发框架Fluter特性介绍Flutter官网介绍如下: Flutter is Google’s mobile UI framework for crafting high-quality native interfaces on iOS and Android in record time. Flutter works with exis...

2018-03-08 13:40:46 1464 1

原创 带你过一遍Android 多主题框架——MagicaSakura

MagicaSakura 是 Android 多主题框架。 具有以下优点:列表内容列表内容支持白天彩色主题和夜间主题。切换主题不需要重建activity提供TintXXX控件适配不同的主题,更方便更快捷。只需写一个drawable.xml 或者 layout.xml 就能自动适配到不同主题样式。兼容4.0.3以上易于集成到你的app。Github官网 首先进入Main...

2018-03-05 11:45:21 3841

原创 面试神器第二弹:Rxjava熟悉——操作符

上期简单讲了Rxjava的入门,方便大家认识Rxjava,这期带大家了解Rxjava,认识Rxjava的更多特性Rxjava操作符Rxjava操作符就是各种方法,每种方法能够帮助我们处理一种情况,Rxjava的强大也就在于这些方法的使用。下面大家认识一下几个比较常用的操作符(方法) Observable.create: 这是最简单操作符,用于创建一个Observ...

2018-02-28 21:39:52 4121

原创 Android面试神器之Rxjava破冰

前言 刚参加工作的时候接触到了项目中的Rxjava,当时一点基础没有,学习了好长时间才渐渐学会使用,但也只是皮毛,停留在表面。后来换工作了发现Rxjava对找工作的帮助还是挺大的,因为是流行框架,都可以讲给面试官听,体现出自己追求技术的精神。但实际上,学会Rxjava对技术的提升还是很有帮助的,所以我会为大家讲解Rxjava的相关知识,以及Rxjava 1 到Rxjava 2的变化,帮助大...

2018-02-27 10:56:14 10331 1

原创 Android开发的福音,谷歌隆重推出 Android KTX预览版,让 Kotlin 的开发更美妙!

前几天,谷歌发布 Android KTX 预览版,这是一套扩展插件,还在 Android 框架和 Support Library 上提供相应 API 层,能帮助开发者更为简洁、通顺和优雅地使用 Kotlin 语言开发 Android 程序。开发者可以前往 GitHub 下载适用 Android 框架的 Android KTX 扩展插件。示例:使用 Android KTX 编写的代码样例...

2018-02-26 16:13:06 260

原创 Android API version 查询

Android Api version(Android TargetSdk Version ) 每次总是极不清楚,所以保存在博客里,记录一下https://source.android.com/setup/build-numbersCode nameVersionAPI levelOreo8.1.0API leve

2018-01-05 11:52:16 733

原创 解决升级chrome后,访问https出现Your connection is not private

访问https的网站出现privacy error。Your connection is not private等信息,针对chrome可以通过以下方式解决:打开链接chrome://flags.找到quic相关的两项,设置为启动,重启chrome就行了记录一下。

2017-05-14 15:52:53 30622 4

原创 Intent启动另一个APP里的fragment

启动外部应用的分fragment。

2016-11-18 18:08:42 3852 7

原创 Android ADB中使用find命令

在adb中经常需要查找一些文件或者是目录,但是很可惜adb所用busybox指令集中并没有包含find命令;所以在多次觉得不便胡情况下,决定自己用C 语言实现一个find命令的精简版本,仅仅为了查找文件或者目录;代码如下:find.c:#include#include#include#include#include#include#include #in

2016-04-01 15:27:17 10110 1

原创 adb shell中设置android系统内部环境变量!

在adb shell中,添加android系统的环境变量方法:在adb shell进入到adb shell中用export可以查看到安卓中的环境变量,但是由于移植服务,需要系统中存在TMPDIR这一环境变量,所以网上搜索; sunfch@sunfc-BJ-FA-PC-1037:~/source/T8$ adb shell root@scx35_sp7731gea_

2016-04-01 15:27:12 8156

转载 Linux 同步方法剖析--内核原子,自旋锁和互斥锁

在学习 Linux® 的过程中,您也许接触过并发(concurrency)、临界段(critical section)和锁定,但是如何在内核中使用这些概念呢?本文讨论了 2.6 版内核中可用的锁定机制,包括原子运算符(atomic operator)、自旋锁(spinlock)、读/写锁(reader/writer lock)和内核信号量(kernel semaphore)。 本文还探讨了每种机制...

2016-04-01 15:27:09 746

原创 (原创)socket学习实验(一)——利用C 语言socket抓取一个网页内容

(纯手打,有问题可以交流)最近在学习socket,然后做了一些小的实验,发现socket功能还真是强大,对于socket流使套接字在某种程度上其实是与终端的telnet相似的,IP地址对应socket里的sock地址,端口对应sock里的端口,然后就看自己在终端里发送命令,就如同利用socket的send和recv方法了,我在终端上测试一个telnet,获取一个网页的内容:~:teln

2016-04-01 15:27:06 1113

原创 linux内核——进程管理

在讲进程之前先说一下进程的堆栈的吧: 1.进程的堆栈      内核在创建进程的时候,在创建task_struct的同时,会为进程创建相应的堆栈。每个进程会有两个栈,一个用户栈,存在于用户空间,一个内核栈,存在于内核空间。当进程在用户空间运行时,cpu堆栈指针寄存器里面的内容是用户堆栈地址,使用用户栈;当进程在内核空间时,cpu堆栈指针寄存器里面的内容是内核

2016-04-01 15:27:04 631

原创 Linux进程间通信——消息队列:

一、什么是消息队列 消息队列提供了 一种从一个进程向另一个进程发送一个数据块的方法。  每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。但是消息队列 与命名管道一样,每个数据块都有一个最大长度的限制。   Linux用宏MSGMAX和MSGMNB来限制一条消

2016-04-01 15:26:54 491

原创 msgrcv error : Identifier removed(ERMID)错误解决;

今天在学习进程间通信中的消息队列的时候,自己的一个例子经常出现msgrcv error : Identifier removed这个错误,网上找了,发现好多人都与到过这问题,但是并没又给初一个明确的解决办法;后来终于给找出来了,原来是类型的问题:#include  #include  #include  #include    #include  #include

2016-04-01 15:26:44 5080

原创 【原创】boa服务移植到安卓手机

Boa是一种非常小巧的Web服务器,其可执行代码只有大约60KB左右。作为一种单任务Web服务器,Boa只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求。但Boa支持CGI,能够为CGI程序fork出一个进程来执行。Boa的设计目标是速度和安全。下面给大家介绍一下Boa服务器移植的具体操作步骤,希望能够有帮助。我所用的环境是在ubuntu12下,交叉编译工具arm

2016-04-01 15:26:41 807

原创 【原创】samba移植到android流程

参考这一篇文章http://blog.csdn.net/jk198310/article/details/15809341然后结合自己实际操作过程中遇到的一些问题总结出来这个流程最近做一个关于把samba服务移植到安卓项目,网上不乏一些文章,但是照着文章做还是会出现好多问题,不得不各种百度,google,终于克服困难成功运行起来,所以把自己记得的流程记录下来,结合网上一些文章总结,并将

2016-04-01 15:26:38 3394 4

转载 【转】linux网络编程——套接字(socket)入门

1.套接字的基本结构struct sockaddr这个结构用来存储套接字地址。数据定义:struct sockaddr {unsigned short sa_family; /* address族, AF_xxx */char sa_data[14]; /* 14 bytes的协议地址 */};sa_family 一般来说,都是“AFINET”。sa_data ...

2016-04-01 15:26:36 854

原创 Linux 原始套接字--myping的实现

一、套接字的类型A.流套接字(SOCK_STREAM) 用于提供面向连接、可靠的数据传输服务,其使用传输层的TCP协议B.数据报套接字(SOCK_DGRAM)用于提供一个无连接、不可靠的服务,其使用传输层上的UDP协议C.原始套接字(SOCK_RAM)原始套接字是相对表中套接字(即前面两种套接字)而言的。它与标准套接字的区别是原始套接字可以读写内核没有处理的IP数据包,流套接字只能读取TCP协议的

2016-04-01 15:26:28 605

原创 linux 标准IO缓冲机制探究

一、什么是缓存I/O(Buffered I/O)缓存I/O又被称作标准I/O,大多数文件系统默认I/O操作都是缓存I/O。在Linux的缓存I/O机制中,操作系统会将I/O的数据缓存在文件系统的页缓存(page cache)中,也就是说,数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间。1.缓存I/O有以下优点:A.缓存I/O使用了操作系统内核缓冲区,

2016-04-01 15:26:15 515

基于JSP的BBS论坛代码

JSP开发的BBS论坛源代码,包含数据库文件盒Javabean文件

2013-12-29

Goole提供的ADB包

goole提供的ADB包。用于手机解锁和手机系统强化,

2013-09-07

一键root工具Eroot

史上最强大的一键root工具,简单,快捷,傻瓜式root

2013-09-07

空空如也

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

TA关注的人

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