自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 资源 (2)
  • 收藏
  • 关注

原创 记录一下这些年看过的开发相关书籍

目录:android appAndroid SDK开发范例大全第3版 余志龙 人民邮电出版社第一行代码第2版 郭霖 人民邮电出版社Android群英传 旭宜生 电子工业出版社安卓framework深入理解Android内核设计思想上,下 林学森 人民邮电出版社Android框架揭秘 [韩]金泰延 人民邮电出版社Android开发艺术探索 任玉刚 电子工业出版社Android系统源代码情景分析 罗升...

2019-05-15 22:43:02 501

原创 工作目录

整理一下最近的工作记录,方便自己查看kk[kk]Japanese IME输入过多字符时报错L

2018-12-12 10:25:54 318

转载 [转]UML类图中连接线与箭头的含义

目录:概念关联-属性指针-associate1.双向关联-相互关联,概念UML类图是描述类之间的关系,部分概念如下:类(Class):使用三层矩形框表示。第一层显示类的名称,如果是抽象类,则就用斜体显示。第二层是字段和属性。第三层是类的方法。注意前面的符号,‘+’表示public,‘-’表示private,‘#’表示protected。接口:使用两层矩形框表示,与类图的区别...

2018-11-22 11:46:36 3395

转载 [转]从源码角度分析java层Handler机制

在Android中,当要更新ui的时候,我们必须要在主线程中进行更新,原因时当主线程被阻塞了5s以上就会出现anr异常,会导致程序崩溃。所以一些耗时的操作必须要放在子线程中,但是在子线程中又不能做更新ui的操作,所以为了解决这个问题,Android设计了handler机制,handler的出现建立起了主线程与子进程之间的通信桥梁,使得ui更新问题得到改善,下面就来剖析一下handler。Activ...

2019-05-30 20:44:04 254

转载 [转]Python中的正则表达式

目录:Re模块正则表达式模式特殊元素正则表达式实例Re模块正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。re 模块使 Python 语言拥有全部的正则表达式功能。import rere.match #从开始位置开始匹配,如果开头没有则无re.search #搜索整...

2019-03-12 12:38:06 224

转载 [转]request处理cookie的两种方法

目录:1 获取cookie2 使用cookie2.1 cookies是字典格式2.2使用requests.session,2.3 headers中加cookie。python提供了一个非常强大的第三方库requests处理http协议。今天讲的重点就是如何使用requests处理cookie。1 获取cookie#导入requests包import requeststargetURL ...

2019-03-12 02:12:24 1467

转载 [转]python logging模块

目录:1 logging模块简介2 logging模块使用2.1 基本使用2.2 将日志写入到文件2.2.1 将日志写入到文件2.2.2 将日志同时输出到屏幕和日志文件2.2.3 日志回滚2.3 设置消息的等级2.4 捕获traceback2.5 多模块使用logging3 通过JSON或者YAML文件配置logging模块3.1 通过JSON文件配置3.2 通过YAML文件配置1 loggi...

2019-03-11 21:26:11 200

转载 [转]Predeclared core register names

2.10 Predeclared core register namesMany of the core register names have synonyms.The following table shows the predeclared core registers:Table 2-2 Predeclared core registersRegister namesMe...

2018-12-18 10:55:19 166

原创 修改L版本android.jar使其包含增加的api

在开发中时常会遇到要用到android隐藏api的情况,通常的做法是通过反射去调用,但是反射带来性能上的影响,代码也不够直观,我更偏爱直接使用那些api。于是这就是本文的开始,自己改造一个android.jar,使其包含隐藏api其实步骤很简单,因为android系统内带的framework.jar已经包含了隐藏api,只需将其抽取并放到android.jar内就好了,整理一下就是:从指定...

2018-12-13 15:10:09 578

原创 android脱壳之dvmDexFileOpenPartial分析

目录:逆向加壳apk的典型方法流程分析逆向加壳apk的典型方法我们知道,逆向加壳apk的时候,可以对libdvm.so中的int dvmDexFileOpenPartial(const void* addr, int len, DvmDex** ppDvmDex)函数打断点,然后使用下面的程序根据addr和len将内存中的dex文件dump到文件中。// dump memory dex to...

2018-12-11 18:39:39 1458

原创 android中SELINUX规则分析和语法简介

目录:SELINUX简介查看SELINUX权限1. 进程2. 文件如何配置selinux1.基本语法A. 上下文描述文件B. 策略文件te2.举例:生成规则文件的方法SELINUX简介SELINUX是可以理解为一种android上面的安全机制,是有美国国家安全局和一些公司设计的一个针对linux的安全加强系统,我们可以通过配置SELINUX的相关policy,来定制自己的手机的一些权限,比如,...

2018-12-11 16:52:17 5204

原创 [kk]投影息屏的功能开发

目录:需求分析投影息屏的功能说明系统提供的接口代码提交yx_a80_frameworksyx_a80_deviceyx_a80_licheeapp端调用的方法遇到的问题备注:需求分析投影息屏的功能说明机器人在投影播放视频时,面部平板页面与投影页面保持一致,且处于常亮状态。若在比较暗的环境下观看,极大影响了观看投影的质量,同时也会分散观看人的注意力。解决方案是在开启投影后,可机器人面部平板可自...

2018-12-10 17:28:17 1411

转载 [转]Android的ThreadLocal的工作原理

Looper中有一个特殊的概念,那就是ThreadLocal,ThreadLocal并不是线程,它的作用是可以在每个线程中存储数据。大家知道,Handler创建的时候会采用当前线程的Looper来构造消息循环系统,那么Handler内部如何获取到当前线程的Looper呢?这就要使用ThreadLocal了,ThreadLocal可以在不同的线程之中互不干扰地存储并提供数据。ThreadLocal...

2018-12-08 22:33:15 330

原创 Extract src.zip from JDK Installer

Since Oracle stopped shipping src.zip inside of tools.zip on the release 45 of JDK 8, this tutorial will show you how to extract src.zip from JDK installer.Download the JDKVisit this link to downloa...

2018-12-08 16:12:00 415

转载 [转]java泛型中?和T的区别

在代码中经常会看到这样的函数public static void printColl(ArrayList<?> al){ Iterator<?> it = al.iterator(); while(it.hasNext()) { System.out.println(it.next().toString())...

2018-12-08 00:21:15 344

转载 [转]select/poll/epoll对比分析

目录一、select二、poll三、epoll3.1 epoll_create()3.2 epoll_ctl()3.3 epoll_wait()四、对比select/poll/epoll都是IO多路复用机制,可以同时监控多个描述符,当某个描述符就绪(读或写就绪),则立刻通知相应程序进行读或写操作。本质上select/poll/epoll都是同步I/O,即读写是阻塞的。一、select原型:...

2018-12-07 23:22:52 169

转载 [转]Handler的运行机制

目录一. Handler的主要作用二. Handler的基本使用二. Handler的运行机制(kk源码解读)1. Handler.sendMessage(msg)做了些什么?2. 从ActivityThread.main()分析2.1.首先我们看Looper.prepareMainLooper()做了些什么2.2. Looper.loop();2.3. 资源回收处理 msg.recycle(...

2018-12-07 15:38:33 193

转载 [转]Android限制只能在主线程中进行UI访问的实现原理

目录Android限制只能在主线程中进行UI访问Thread的实现Android Thread 的构造方法Android Thread 的start()方法如何在我们自己的代码中去检测当前Thread是不是UI线程呢?Android限制只能在主线程中进行UI访问我们知道,Android中规定了访问UI只能在主线程中进行,如果在子线程中访问UI的话,程序就会抛出异常Only the origin...

2018-12-07 13:01:31 635 1

原创 枚举实现单例

单例模式的作用:保证一个类只有一个实例,并提供一个访问它的全局访问点常用于重量级对象,这个类创建对象是耗时,耗内存和复杂的单例模式的好处 保证对象在内存中仅有一个,减少内存开销单例模式枚举方式:立即加载、线程安全、实现简单、防止反序列化例子public class DBConnection { public static void main(String[] args) throws ...

2018-12-04 15:49:38 641

转载 [转]arm中r12(IP)的用途

近来在维护一个年久失修的程序, 包括应用,库文件以及一个linux device driver.很久以前程序是用arm-linux-gcc 3.4.3编译的。而最近当换用arm-linux-gcc 4.1.1进行编译的时候发现程序神奇的无法运行了。经过尝试,发现当我们使用shared library形式编译程序后,它便无法正常运行。而如果将库和应用static linking在一起后就能得出正确结...

2018-12-03 10:21:28 876

转载 [转]IBinder对象在进程间传递的形式

命题当service经常被远程调用时,我们常常用到aidl来定一个接口供service和client来使用,这个其实就是使用Binder机制的IPC通信。当client bind service成功之后,系统AM会调用回调函数onServiceConnected()将service的IBinder传递给client, client再通过调用aidl生成的asInterface()方法获得serv...

2018-11-30 16:54:41 895

原创 linux下批量修改文件名之rename

先来看看rename命令的帮助手册$ man renameRENAME(1) Perl Programmers Reference Guide RENAME(1)NAME rename - renames multiple filesSYNOPSIS rename [ -v ] [ -n ] [ -f ] ...

2018-11-30 10:11:38 608

转载 [转]Context是如何跟ContextImpl关联的

代码分析基于kk系统Context的类图从上面的图可以看到,Activity和ContextImpl并没有直接的继承关系,而我们知道Activity的主要处理逻辑都在ContextImpl里面。下面我们看看是怎么一步步引用到ContextImpl的。以Activity获取系统服务`getSystemService()``为例简单说一下frameworks/base/core/java...

2018-11-29 10:23:33 418

转载 [转]HashMap实现原理及源码分析

https://www.cnblogs.com/chengxiao/p/6059914.html

2018-11-27 18:20:28 208

转载 [转]c++中的reinterpret_cast

目录:reinterpret_cast含义reinterpret_cast VS static_castreinterpret_cast VS const_castreinterpret_cast含义reinterpret意为“重新解释”reinterpret_cast是C++中与C风格类型转换最接近的类型转换运算符。它让程序员能够将一种对象类型转换为另一种,不管它们是否相关。re...

2018-11-27 13:02:38 1037

原创 C++ 类模板在Android Camera代码里的一个例子

对上文[转]C++ 类模板和模板类的一点小补充。以kk系统上Camera相关代码举例代码位置:frameworks/av/include/camera/CameraBase.hframeworks/av/include/camera/Camera.hframeworks/av/camera/CameraBase.cppframeworks/av/camera/Camera.cpp...

2018-11-26 18:05:29 630

转载 [转]C++ 类模板和模板类

类模板的意义和函数模板的意义是一样的。类模板的定义template <class T> //声明一个模板,虚拟类型名为T。注意:这里没有分号。class Compare //类模板名为Compare{public : Compare(T a,T b) { x=a;y=b; } T max( ) { return (x&...

2018-11-25 17:59:17 266

转载 [转]Android中的sp和wp指针

经常会在android的framework代码中发现sp<xxx>和wp<xxx>这样的指针,平时看的时候都把他当成一个普通的指针封装过掉了,这几天终于忍不住了,想深入了解一下。相关的代码:frameworks/base/include/utils/RefBase.hframeworks

2018-11-23 17:21:50 622

转载 [转]C++中的friend class

对于一个没有定义public访问权限的类,能够让其他的类操作它的私有成员往往是有用的。例如你写了一段binary tree的代码,Node是节点类,如果能够让连接多个节点的函数不需要调用public方法就能够访问到Node的私有成员的话,一定是很方便的。Friend Classes(友元类)C++中的friend关键字其实做这样的事情:在一个类中指明其他的类(或者)函数能够直接访问该类中的p...

2018-11-23 15:16:55 1092

原创 [excel]查找相同身份证信息的不同缴费金额

目录需求描述方法一:使用excel中的函数1.使用函数VLOOKUP来查找相同身份证信息下的个人缴费金额列2.使用函数COUNTIF来查找相同身份证信息下的个人缴费金额列3.使用筛选功能把最终结果筛出来需求描述昨天媳妇给安排了个任务,excel中两个Sheet查重的问题,具体如下:找到excel两个sheet中的同一个人的不同缴费信息。找到Sheet1中比Sheet2中多出的人员的信息。...

2018-11-23 14:19:43 2137 1

转载 [转]Android系统服务(SystemService)简介【下】

目录

2018-11-21 12:44:24 1964

转载 [转]Android系统服务(SystemService)简介【上】

目录:什么是SystemServiceSystemService使用实例VibratorSystem Service实现流程System Service 新加接口应用层与 System Service 通信方式实现 System Service 的注意事项什么是SystemService我们在Android开发过程中经常会用到各种各样的系统管理服务,如进行窗口相关的操作会用到窗口管理服务Win...

2018-11-21 11:18:02 647

转载 [转]android init进程分析 ueventd

ueventd主要是负责设备节点的创建、权限设定等一些列工作。服务通过使用uevent,监控驱动发送的消息,做进一步处理。ueventd实际和init是同一个binary,只是走了不同分支,可参看前一部分。ueventd的整体代码比较简单,主要是三部分:解析ueventd.rc初始化设备信息循环polling uevent消息主函数及相关功能如下如下:int ueventd_ma...

2018-11-19 15:14:45 703

转载 [转]misc_register

Linux内核使用misc_register函数注册一个混杂设备,使用misc_deregister移除一个混杂设备。注册成功后,linux内核为自动为该设备创建设备节点,在/dev/下会产生相应的节点。HAL层fd = open("/devshf",READONY); open的路径跟kernel中路径一样,就会走到kernel对应的系统调用中了kernel端struct file_...

2018-11-19 10:05:19 1638

转载 20180917-欢迎使用CSDN-markdown编辑器【效果】

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2018-11-14 11:16:30 140

转载 20180917-欢迎使用CSDN-markdown编辑器【模板】

@[TOC](这里写自定义目录标题)# 欢迎使用Markdown编辑器你好! 这是你第一次使用 **Markdown编辑器** 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。## 新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功...

2018-11-14 11:16:19 245

转载 [转]Android AudioFlinger instantiate()的实现

目录:AudioFlinger简介AudioFlinger::instantiate()的实现。AudioFlinger简介Android AudioFlinger 是Android音频系统的两大服务之一,另一个服务是AudioPolicyService,这两大服务都在系统启动时有MediaSever加载,加载的代码位于:frameworks/base/media/mediaserver/m...

2018-11-14 11:01:59 954

原创 ubuntu14.04编译OpenJdk7

目录:系统环境准备工作1.下载OpenJdk7的源码2.下载一些依赖库并解压3.安装相关编译依赖开始编译1.编写环境设置脚本2.检查配置3.开始编译遇到的问题和解决方法系统环境系统版本$ uname -aLinux liuxiuquan 4.4.0-116-generic #140~14.04.1-Ubuntu SMP Fri Feb 16 09:25:20 UTC 2018 x86_6...

2018-09-21 11:55:55 546

转载 [转]Java中构造代码块、static代码块和局部代码块的区别

先上代码:class StaticCode{ int age; // static代码块 static{ System.out.println("static代码块"); } //构造代码块 { System.out.println("构造代码块 55 "); } //

2018-09-19 21:34:02 167

原创 INDY工具的使用:如何生成invokedynamic指令

本篇主要写下面几个东西:什么是INDYINDY的使用什么是INDY由于invokedynamic指令所面对的使用者并非java语言,而是其他java虚拟机支持的动态语言,因此仅依靠java语言的编译器javac没有办法生成带有invokedynamic指令的字节码,所以要使用java语言来演示invokedynamic指令只能用一些变通的办法。John Rose编写了一个把程序的字节码转换未使...

2018-09-18 21:46:25 910 2

搜狗阿狸皮肤

搜狗的阿狸皮肤 自己用的感觉不错 蛮可爱的

2012-10-24

MT系列纸模图纸

只需要把图片打印出来 即可制作mt的纸模 很简单的!

2012-08-30

空空如也

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

TA关注的人

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