自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

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

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

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

JoScheduler服务框架分析 App端从创建一个job 到调度一个Job流程是怎样的? Job在App端主要比较重要的类有四个:JobInfo,JobScheduler,JobService,JobServiceEngine public class JobInfo implement...

2019-05-21 09:10:32

阅读数 665

评论数 6

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

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

2018-10-12 15:33:05

阅读数 367

评论数 0

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

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

2018-03-22 15:02:15

阅读数 495

评论数 0

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

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

2018-03-20 18:08:46

阅读数 4326

评论数 4

原创 菜鸟带你Hook技术实战

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

2018-03-19 10:51:01

阅读数 1117

评论数 0

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

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

2018-03-15 10:33:48

阅读数 313

评论数 0

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

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

2018-03-13 14:02:41

阅读数 356

评论数 0

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

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

2018-03-12 10:32:28

阅读数 188

评论数 0

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

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

2018-03-09 15:53:57

阅读数 734

评论数 0

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

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

2018-03-09 10:02:41

阅读数 30979

评论数 3

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

Android 耗电信息统计服务——BatteryStats源码分析(一) 概述 Android 中关于耗电的统计一般是关于功耗分析的重要信息,Bettery-historian工具也是依托于解析BatteryStats 的dump 信息来提供界面直观分析,并且电池电量耗费的源头实在太多,...

2018-01-12 15:05:12

阅读数 2756

评论数 1

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

背景最近公司好多人都因为Jobscheduler的使用不当导致各种问题,Job定时任务不生效或者冲突。归根结底是对Jobscheduler的使用不熟悉以及,其工作原理没有一个系统性的了解。本人也曾踩坑,所以下定决心好好熟悉Jobscheduler。 概述   在android开发中经常会有...

2017-10-19 22:13:52

阅读数 5685

评论数 0

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

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

2017-03-02 09:16:45

阅读数 8547

评论数 2

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

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

2016-11-17 20:06:42

阅读数 6731

评论数 4

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

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

2016-11-15 18:02:00

阅读数 4396

评论数 28

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

DeviceIdleController的实现逻辑 1.服务启动 2 1.1SystemServer.java启动阶段 2 1.2准备阶段 5 2. 进入Idle模式 6 2.1进入idle模式的流程 6 3. 状态变化的驱动因素 10 4.进入Idle模式后的处理 10 4.1对于Power...

2016-08-02 10:40:08

阅读数 5390

评论数 4

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

概述 Healthd是android4.4之后提出来的一种中介模型,该模型向下监听来自底层的电池事件,向上传递电池数据信息给Framework层的BatteryService用以计算电池电量相关状态信息,BatteryServcie通过传递来的数据来计算电池电量显示,剩余电量,电量级别等信息,如...

2016-04-07 09:09:13

阅读数 7360

评论数 5

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

概述一直以来,电源管理是电子产品设计中非常重要的环节,也是任何电子设备中最为重要的系统模块之一,优秀的电源管理方案,能够提供持久的续航能力,良好的用户体验,更能提升电子产品的竞争力。移动设备的电量主要由两种元件消耗:CPU和显示屏,因此设法降低这两种元件的耗电量就是电源管理的关键,为移动设备设计的...

2016-04-01 09:49:43

阅读数 11400

评论数 20

原创 Okhttp的源码解读

重要的类 类名 描述 OkHttpClient OkHttp请求客户端,Builder模式实现 Dispatcher 本质是异步请求的调度器,负责调度异步请求的执行,控制最大请求并发数和单个主机的最大并发数,并持有有一个线程池负责执行异步请求,对同步请求只...

2018-04-08 15:59:03

阅读数 167

评论数 0

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

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

2018-03-27 17:48:04

阅读数 2678

评论数 1

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

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

2018-03-08 13:40:46

阅读数 488

评论数 1

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

MagicaSakura 是 Android 多主题框架。 具有以下优点: 列表内容 列表内容 支持白天彩色主题和夜间主题。 切换主题不需要重建activity 提供TintXXX控件适配不同的主题,更方便更快捷。 只需写一个drawable.xml 或者 layout.xml 就能自动适配...

2018-03-05 11:45:21

阅读数 1700

评论数 0

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

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

2018-02-28 21:39:52

阅读数 2165

评论数 0

原创 Android面试神器之Rxjava破冰

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

2018-02-27 10:56:14

阅读数 5070

评论数 0

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

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

2018-02-26 16:13:06

阅读数 119

评论数 0

原创 Android API version 查询

Android Api version(Android TargetSdk Version ) 每次总是极不清楚,所以保存在博客里,记录一下 https://source.android.com/setup/build-numbers Code name Versio...

2018-01-05 11:52:16

阅读数 302

评论数 0

原创 解决升级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

阅读数 13446

评论数 0

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

启动外部应用的分fragment。

2016-11-18 18:08:42

阅读数 2359

评论数 6

原创 Android ADB中使用find命令

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

2016-04-01 15:27:17

阅读数 6406

评论数 1

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

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

2016-04-01 15:27:12

阅读数 4853

评论数 0

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

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

2016-04-01 15:27:09

阅读数 575

评论数 0

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

(纯手打,有问题可以交流) 最近在学习socket,然后做了一些小的实验,发现socket功能还真是强大,对于socket流使套接字在某种程度上其实是与终端的telnet相似的,IP地址对应socket里的sock地址,端口对应sock里的端口,然后就看自己在终端里发送命令,就如同利用socke...

2016-04-01 15:27:06

阅读数 671

评论数 0

原创 linux内核——进程管理

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

2016-04-01 15:27:04

阅读数 502

评论数 0

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

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

2016-04-01 15:26:54

阅读数 365

评论数 0

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

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

2016-04-01 15:26:44

阅读数 2695

评论数 0

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

Boa是一种非常小巧的Web服务器,其可执行代码只有大约60KB左右。作为一种单任务Web服务器,Boa只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求。但Boa支持CGI,能够为CGI程序fork出一个进程来执行。Boa的设计目标是速度和安全。 下面给大家介绍一下Bo...

2016-04-01 15:26:41

阅读数 589

评论数 0

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

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

2016-04-01 15:26:38

阅读数 2199

评论数 0

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

1.套接字的基本结构 struct sockaddr 这个结构用来存储套接字地址。 数据定义: struct sockaddr { unsigned short sa_family; /* address族, AF_xxx */ char sa_data[14]; /* 14 byte...

2016-04-01 15:26:36

阅读数 645

评论数 0

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

一、套接字的类型A.流套接字(SOCK_STREAM) 用于提供面向连接、可靠的数据传输服务,其使用传输层的TCP协议B.数据报套接字(SOCK_DGRAM)用于提供一个无连接、不可靠的服务,其使用传输层上的UDP协议C.原始套接字(SOCK_RAM)原始套接字是相对表中套接字(即前面两种套接字)...

2016-04-01 15:26:28

阅读数 425

评论数 0

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

一、什么是缓存I/O(Buffered I/O)缓存I/O又被称作标准I/O,大多数文件系统默认I/O操作都是缓存I/O。在Linux的缓存I/O机制中,操作系统会将I/O的数据缓存在文件系统的页缓存(page cache)中,也就是说,数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内...

2016-04-01 15:26:15

阅读数 377

评论数 0

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