自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

路人甲

不用闪躲,为我喜欢的生活而活 不用粉墨,就站在光明的角落

  • 博客(50)
  • 资源 (8)
  • 收藏
  • 关注

转载 强文推荐

Android Camera System(2):Camera Systemhttp://zhoujinjian.cc/2018/07/10/Android%20Camera%20System%EF%BC%882%EF%BC%89%EF%BC%9ACamera%20System[Camera%20%E7%B3%BB%E7%BB%9F]startPreview%E3%80%81takePictu...

2019-04-02 14:11:49 769

原创 android O版本 pms 强制编译流程

adb shell cmd package compile -m XXX 强制编译流程研究Pm.java private int runShellCommand(String serviceName, String[] args) { final HandlerThread handlerThread = new HandlerThread("results"); ...

2018-03-11 22:09:43 2186 1

转载 ART classloader双亲委托模式

ART的classloader,继续采用双亲委托模式ANDROID classloader:https://www.jianshu.com/p/a620e368389a双亲委派模型2016年01月02日 15:34:1712065说道双亲委派模型,就要从类加载器说起。。。。。。。。。。。Java虚拟机类加载过程是把Class类文件

2018-01-14 23:29:43 494

转载 Android Art分析2

dex2oat/system/bin/dex2oat 对应的源码文件位于/art/dex2oat/dex2oat.cc。main 函数代码如下:123451. int main(int argc, char** argv) {  2. return art::dex2oat(argc,

2017-12-31 00:01:59 633

转载 Android ART 分析

对Android ART的分析,主要包括ART Runtime启动过程以及dex2oat的分析。由于代码量较多,忽略了很多细节,所以分析过程会存在错误;ART Runtime采用单例模式,启动过程中参数解析实例化会对后续dex2oat的分析有所影响,但是我在分析过程中没有去特别关注每个参数,有兴趣的可以自行分析!另外ART Runtime还可以继续深入分析!BTW,附件中是分析中使用的

2017-12-31 00:01:31 2402

转载 ELF映像的装入(二)

http://www.longene.org/techdoc/0750005001224576724.html漫谈兼容内核之九:ELF映像的装入(二)毛德操        上一篇漫谈介绍了在通过execve()系统调用启动一个ELF格式的目标映像时发生于Linux内核中的活动。简而言之,内核根据映像头部所提供的信息把目标映像映射到(装入)当前进程用户空间的某个位置上;并且,

2017-11-13 23:58:18 551

转载 ELF映象的装入(一)

漫谈兼容内核之八:ELF映像的装入(一)毛德操 上一篇漫谈中介绍了Wine的二进制映像装入和启动,现在我们来看看ELF映像的装入和启动。一般而言,应用软件的编程不可能是“一竿子到底”、所有的代码都自己写的,程序员不可避免地、也许是不自觉地、都会使用一些现成的程序库。对于C语言的编程,至少C程序库是一定会用到的。从编译/连接和运行的角度看,应用程序和库程序的连接有两种方法。一种是

2017-11-13 23:57:28 573

转载 Sublime Text 3 配置java程序运行环境(可引入jar包、控制台输入)

流传很多配置运行java的文章,都没找到合适的,包括例子,终于东拼西凑的弄好了,给大家参考:    1、Sublime Text 3--->Preference--->Browse Packages,在打开的窗口中双击User文件夹,新建文件JavaC.sublime-build,用记事本打开,粘贴下面的代码并保存关闭:{ "cmd": ["javac", "-encoding

2017-01-08 15:53:39 5348 2

原创 使用ubuntu16.0416.04

16.04 无法上网1. VMware 设置:  Edit -> Virtual Network Editor-> Vmnet0 : Bridged, Auto-bridging.2. 在关闭虚拟机的情况下设置。  Virtual Machine Settings -> Network Adapter -> Custom(VMnet0)3. 启动Ubuntu

2017-01-08 11:48:34 582

转载 sudo fastboot not found and no permissions

fastboot flash boot out/target/product/generic/boot.img不管用,提示原因查找:用fastboot命令查看设备提示无权限,如下:$ fastboot -l devicesno permissions         fastboot usb:2-1.3于是知道是因为权限问题,是fastboot没有权限, 解

2016-11-01 19:53:12 2031

翻译 Stability of the C++ ABI: Evolution of a Programming Language

By Stephen Clamage, March 2011 (updated June 2016)As C++ evolved over the years, the Application Binary Interface (ABI) used by a compiler often needed changes to support new or evolving language

2016-10-18 15:51:29 460

翻译 so库二进制兼容性检测

http://stackoverflow.com/questions/1970296/how-to-test-binary-compatibility-automaticallyvABI Compliance Checker — a tool for checking backward API/ABI compatibility of a C/C++ lib

2016-10-18 14:41:57 1631

翻译 Tips for debugging on Linux

This page is for Chromium-specific debugging tips; learning how to run gdb is out of scope.ContentsSymbolized stack traceGDBBasic browser process debuggingAllowing attaching to foreign p

2016-10-13 11:12:46 893

转载 socket关闭: close()和shutdown()的差异

转:http://drmingdrmer.github.io/tech/programming/network/2015/07/28/close-shutdown.html对于一个tcp连接,在c语言里一般有2种方法可以将其关闭:close(sock_fd);或者shutdown(sock_fd, ...);多数情况下这2个方法的效果没有区别,可以互换使用。除了:c

2016-05-26 10:13:02 7585

原创 同步linphone

linphone, 牛逼的VOIP开源项目。不做过多说明。参看http://www.linphone.org/代码同步参看下表:Projectgitlinphone, including:oRTPmediastreamer2liblinphonelinphoneclinphone (gtk)git

2016-03-17 14:26:19 1715

原创 SPDY介绍

SPDY(读作“SPeeDY”)是Google开发的基于TCP的应用层协议,用以最小化网络延迟,提升网络速度,优化用户的网络使用体验。SPDY并不是一种用于替代HTTP的协议,而是对HTTP协议的增强。新协议的功能包括数据流的多路复用、请求优先级以及HTTP报头压缩。谷歌表示,引入SPDY协议后,在实验室测试中页面加载速度比原先快64%。功能定位将页面加载时间减

2016-02-15 16:08:10 911

原创 jar反编译神器

1. 下载软件jd-gui-0.3.5.linux.i686.tar.gzhttp://pan.baidu.com/s/1ntN7DaT2. 解压后,执行./jd-gui我的环境是ubuntu13.10可能需要libgtk-x11-2.0.so.0sudo apt-get install libgtk2.0-0:i386可能还需要libSM.s

2015-09-07 19:58:56 1014

转载 Android中的USB中的UsbAccessory和UsbDevice的区别

【背景】之前折腾android中的USB相关的东西。遇到两个东西:UsbAccessory和UsbDevice但是,不是完全明白其中区别。所以去找找区别。【解决过程】1.看了:android.hardware.usb | Android Developers的解释,有点概念了:UsbAccessory:一种外部硬件

2015-09-07 16:17:45 1487

转载 #ifndef 与 #program once 的区别 和注意点

来自:http://blog.csdn.net/jfkidear/article/details/7868662为了避免同一个文件被include多次,C/C++中有两种方式,一种是#ifndef方式,一种是#pragma once方式。在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。    方式一:    #ifndef __SOMEFIL

2015-08-27 11:03:08 3880

转载 Android 安全机制

1 Android 安全机制概述Android 是一个权限分离的系统 。 这是利用 Linux 已有的权限管理机制,通过为每一个 Application 分配不同的 uid 和 gid , 从而使得不同的 Application 之间的私有数据和访问( native 以及 java 层通过这种 sandbox 机制,都可以)达到隔离的目的 。 与此 同时, Android 还 在此基础上进行扩

2015-08-25 10:10:43 554

转载 android contentResolver与contentProvider如何关联在一起的

注:Application是一个完整的应用,比如某个apk,它对应一个Application,它里面可能包含n个Activity。涉及到的类froyo/frameworks/base/core/java/android/app/ApplicationContext.java          froyo/frameworks/base/core/java/android/a

2015-08-20 10:16:04 905

转载 两种对 URL 的散列效果很好的函数

http://www.jos.org.cn/1000-9825/15/179.pdfhttp://wenku.baidu.com/link?url=irOpsGkPESNv76CWnpJXPLxJnguiudD7NRnM96hwkPu4MwS5AsCVrNe_o-Ihr7nw7aY1zhq268cHLsiE3QguF7tzQzLHIjp7X9n7Z81tnV_

2015-07-27 10:33:01 828

原创 android su源码

android su 通过源码编译出来的;文件位置: $android/system/extras/su/Android.mk: LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_SRC_FILES:= su.cLOCAL_MODULE:= suLOCAL_FORCE_STATIC_EXECUTABL

2015-06-26 17:10:13 6004

原创 MakeFile边学边用-变量覆盖 override

变量覆盖 override作用是使 Makefile中定义的变量能够覆盖 make 命令参数中指定的变量语法:override = override := override +=  下面通过一个例子体会 override 的作用:# Makefile内容 (没有用override)SRCS := programA.c programB

2015-04-28 16:53:18 3850

原创 chromium thirt_party skia编译shared_liberary

默认情况下,Android4.4 chromium webview使用的skia是系统的skia 'conditions': [ # In component mode (shared_lib), we build all of skia as a single DLL. # However, in the static mode, we need to build skia

2015-04-23 20:57:02 1271

翻译 Speed up your eclipse as a super fast IDE

Follow these steps to speed up your eclipse as a super fast IDE , it works for 32 & 64 bit version eclipse/jdk on my windows 7 x64.1.Disable antivirus software, or add your jdk & eclipse & workspace

2015-04-22 16:46:05 541

原创 linux映射磁盘或者文件夹到windows

方法有两种:笔者用的是Ubuntu13.10.1. 像windows一样共享   a. 点击要共享的文件夹或者磁盘,右键属性,会弹出一个框,点击share,然后根据选项,修改权限,over;   b. 进入到window, cmd->\\*.*.*.* 如果网络正常,自然会 显示你刚才共享的文件夹, 然后右键,点击映射网络驱动器2. smba    老一点的

2015-04-21 15:30:29 16364

转载 dlopen 与dlsym

共享对象通过dlopen动态打开动态库的加载完成后,返回一个句柄,通过dlsym定位到你需要执行的函数指针然后可以在程序中使用dlopen -- open a dynamically linked librarydlsym -- get the address of a symbol in a dynamically linked library例子void*handle;

2014-03-14 16:45:05 766

原创 变态的libDispatch源码分析-全局队列异步延时任务处理过程-设置计时器与插入ds

1. 为ds设置计时器,并将其加入到计时任务队列中(1) .入口dispatch_source_set_timer(ds, when, 0, 0);when参数由用户提供,有下面几种情况:#define DISPATCH_TIME_NOW 0#define DISPATCH_TIME_FOREVER (~0ull)0: 表示立即执行;-1: 永久等待

2014-01-22 11:28:50 2916

原创 变态的libDispatch源码分析-全局队列异步延时任务处理过程-计时轮询

前文讲到了进入计时队列轮询,通过_dispatch_mgr_invoke进入到了下面这段代码:static dispatch_queue_t_dispatch_mgr_invoke(dispatch_queue_t dq){ static const struct timespec timeout_immediately = { 0, 0 }; struct timespec time

2014-01-22 10:40:32 5820

原创 变态的libDispatch源码分析-全局队列异步延时任务处理过程-原理与创建ds

延时任务的处理通常包括如下几个要素:a). 任务;b). 延时任务队列;c). 计时器,循环检测延时任务队列,若有任务到时则取出,然后执行;下面分析下GCD中关于libdispatch的延时任务处理方式。下面这部分代码是根据自身需求,封装的一个接口,基本能满足异步延时任务的处理:void _dispatch_delayed(dispatch_time_t when,

2014-01-20 20:49:31 4562

原创 变态的libDispatch结构分析-全局队列异步任务处理过程

GCD的异步方式,从插入任务到异步执行任务的代码流程。

2014-01-17 18:33:26 2306

原创 变态的libDispatch结构分析-全局队列同步任务处理过程

GCD的处理过程,从全局队列的同步处理任务开始。先说明一下两个宏定义#if __GNUC__#define fastpath(x) ((typeof(x))__builtin_expect((long)(x), ~0l))#define slowpath(x) ((typeof(x))__builtin_expect((long)(x), 0l))# define __bu

2014-01-17 16:52:07 2024

原创 变态的libDispatch结构分析-semaphore

文件位置:libdispatch/dispatch/semaphore.hlibdispatch/src/semaphore.c针对Dispatch的semaphore定义了三个方法:/*! * @function dispatch_semaphore_create * * @abstract * Creates new counting semaphore w

2014-01-16 18:32:33 2689

原创 bionic semaphore学习

文件位置:bionic/libc/bionic/semaphore.c头文件位于Linux kernel中下面是头文件定义的接口:/* Initialize semaphore object SEM to VALUE. If PSHARED then share it with other processes. */extern int sem_init (sem_t

2014-01-16 17:06:21 1315

转载 UNIX/Linux程序设计教程之错误处理

UNIX的系统调用和大部分库函数在失败时会返回一特殊值报告出错,这个特殊值通常是–1。这种返回值仅告诉调用遇到了错误而已,为了让应用知道究竟发生了什么错误,系统调用和库函数同时还会在系统定义的变量errno中给出指明错误原因的错误码。变量errno是系统调用和库函数用来报告错误的一种标准方法。早期的UNIX和C将它实现为外部整型变量,其说明为:extern int errno;

2014-01-16 16:35:32 1223

原创 关于一些线程锁相关的心能对比

1. 旋锁spinlock剖析与改进2. Pthreads mutex vs Pthreads spinlock

2014-01-16 14:53:00 773

原创 变态的libDispatch结构分析-原子操作方法

libDispatch 省去了队列锁,代替的是大量的原子操作:文件位置:libdispatch/src/hw_shims.h#if 0 && defined(__i386__) || defined(__x86_64__)#define dispatch_atomic_xchg(p, n) ({ typeof(*(p)) _r; asm("xchg %0, %1" : "=r" (_

2014-01-16 11:50:13 2413

原创 变态的libDispatch结构分析-全局队列

1. pthread_key_t在单线程程序中,我们经常要用到"全局变量"以实现多个函数间共享数据。在多线程环境下,由于数据空间是共享的,因此全局变量也为所有线程所共有。但有时 应用程序设计中有必要提供线程私有的全局变量,仅在某个线程中有效;但却可以跨多个函数访问,比如程序可能需要每个线程维护一个链表,而使用相同的函数操 作,最简单的办法就是使用同名而不同变量地址的线程相关数据结构。这

2014-01-15 19:25:08 3362

原创 变态的libDispatch结构分析-dispatch_object_s

基础类dispatch_object_s是一个透明联合体。透明联合类型削弱了C语言的类型检测机制。或者,换言之,它起到了类似强制类型转换的效果。在一定程度上打破了类型对我们的束缚,使数据以一种更底层的角度呈现在我们面前。不过这样也弱化了C语言对类型的检测,由此也可能带来一些很严重的错误。可以参看:http://nanjingabcdefg.is-programmer.com/p

2014-01-13 19:25:13 2081

OpenGL 编程指南

OpenGL编程指南 第七版 高清 中文 很吊的书籍

2015-09-08

Python from novice

Beginning.Python.From.Novice.to.Professional,2nd.Edition_chs.zi 很好的书籍

2015-09-07

samba-4.2.3

samba-4.2.3 linux 源码 文件共享必备,目前最新版本

2015-09-07

Boost vs loki

智能指针一直是C++讨论的热点,文档分析的很好

2015-06-18

C++ Templates

C++必备书籍,两本核心之一:Templates和面向对象结构分析

2015-06-18

gcd线程研究

GCD的内部研究,源码可以参看libdispatch

2013-12-26

空空如也

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

TA关注的人

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