自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wzn2119的专栏

未来不言,当时不杂,过往不恋

  • 博客(56)
  • 资源 (1)
  • 收藏
  • 关注

原创 博客永久迁移至 http://sniffer.site/

即日起, 个人时间原因,此博客不再更新,所有文章都将发布到个人网站: http://sniffer.site/, 欢迎大家来踩,以及收藏。一起学习,共同进步。谢谢!

2017-07-02 11:31:12 1032

原创 编程技术好文章

下面是一些自己看过的关于编程入门、技术的好文章,其中有很多想法值得参考学习:1. 给计算机系学生的建议2. 如何学好C++         C++实践方法3. 刘未鹏C++系列4. Bjarne Stroustrup_C++_FAQ

2013-11-02 22:26:57 1416

原创 Android 属性系统 详解

Android中保存了很多系统属性值,比如手机的操作系统版本号ro.build.version.release,SDK版本号ro.build.vrsion.sdk,芯片型号ro.chipname;用于配置USB连接类型的persist.sys.usb.config;Android虚拟机ART相关的配置dalvik.vm.image-dex2oat-Xms。

2017-05-11 11:26:57 2944

原创 Android 网络管家ConnectivityManager

Android提供了多种网络与数据传输通道,最常见的是WIFI和移动基站通信(Cellular),同时Android还可以将终端本身作为热点(Wifi Access Point),也可通过WIFI进行将两个终端直接进行连接,从而交互数据;同时还可利用蓝牙将WIFI作为数据热点对外提供数据热点,为其他设备提供网络接入。对于移动通信,不同的运营商提供了不同的服务,网络提供的服务能力也各不相同。那么,An

2017-05-03 17:52:15 20811

原创 SIM逻辑模型与APDU

SIM(Subscriber Identity Module)是一种移动运营商用于提供给用户验证身份、接入网络等服务的UICC卡。一张SIM卡里存储了很多移动网络接入相关的数据,比如ICCID(UICC卡的ID),IMSI(International Mobile Subscriber Identity),验证秘钥(ki, Authentication key),LAI(Local Area Ide

2017-03-29 20:32:46 4853 1

原创 Android TelecomService的来电处理过程

在上一篇文章里,讲到了TelecomService的启动与初始化,这里我们着重以来电(Mobile Terminal)过程来分析一下TelecomService是如何传递通话信息并最终与上层UI交互的。主要分以下几个部分:来电后,Telephony中间层如何将通话通知到TelecomService;TelecomService如何建立通话连接;TelecomService如何告知UI来电信息

2017-03-03 12:13:48 4977

原创 Android 系统服务TelecomService启动过程分析

由于一直负责的是Android Telephony部分的开发工作,对于通信过程的上层部分Telecom服务以及UI都没有认真研究过。最近恰好碰到一个通话方面的问题,涉及到了Telecom部分,因而就花时间仔细研究了下相关的代码。这里做一个简单的总结。主要分以下几个部分:什么是Telecom服务?其作用是什么?Telecom模块的启动与初始化过程;以实际通话过程为例,telephony收到来电后

2017-02-27 17:46:48 9550 3

原创 Android Phone进程启动过程详解

之前解决开机搜网慢的问题时,由于Phone进程起来以后,才会主动连接RILD,因而在一定程度上Phone进程启动的时间会影响网络状态注册的快慢,适当的将Phone进程提前,可以将网络注册时间提前一点,让状态栏中信号显示的时间提前。那么,Android中作为系统的核心进程之一,Phone进程是如何启动的了?zui RIL运行机制请参考: http://blog.csdn.net/jason_wzn

2017-02-21 16:07:58 8105 3

原创 Android Handler消息机制从原理到应用详解

对于跨进程IPC通信,Android提供了一个完整的框架Binder,而对于线程之间的通信,Android同样提供了一个强大的消息机制:Handler/Looper/MessageQueue,通过Handler我们很容易的实现在UI线程与其他线程之间的消息传递。这篇文章,就来看一看Android消息机制的具体应用以及原理。主要有3个方面:Android消息机制相关的基本概念;Android Ha

2017-02-08 16:16:48 1094

原创 Android Binder 框架层详解

在了解完binder在native层以及驱动层的基本流程之后(参考Android如何注册服务到ServiceManager; Android 系统服务管家servicemanager启动过程详解 ),接下来这篇文章我们就来分析下binder在framework层(Java层)的具体原理与实现,重点围绕Java层如何添加服务到系统中这一主题展开。这里会谈到以下几个方面的问题:binder在Java

2017-01-23 10:24:37 3457

原创 Android如何注册服务到ServiceManager?

Binder作为Android进程通信的基础,在整个系统中扮演着十分重要的角色,理解binder的原理是能帮助我们更好的理解Android系统架构,如ActivityManagerService, WindowManagerService等运行机理。在上一篇文章里(http://blog.csdn.net/jason_wzn/article/details/54583373),着重介绍了Androi

2017-01-20 14:24:42 11177

原创 Android 系统服务管家servicemanager启动过程详解

Android考虑到移动设备耗电以及跨进程通信效率等因素,基于OpenBinder专门为进程通信开发了一套框架:binder。例如,客户端程序需要获取WindowManager,TelephonyManager等系统服务时,就需要通过binder这个中介来负责数据与指令的传输。那么,Android提供了如此多的系统服务(可达上百个,可通过 adb shell service list查看),又是谁在

2017-01-17 15:16:13 5791

原创 Android RILD运行机制详解

前言在上一篇文章里(http://blog.csdn.net/jason_wzn/article/details/53232022),简要介绍了Android RIL的架构。这一篇文章,就来看一看RILD相关的内容。Android RIL在HAL(Hardware Abstract Layer)层(即C++层)由三个部分组成:RILD是系统的守护进程,主要用于初始化LIBRIL以及启动厂商自定义的

2016-11-29 14:45:42 9467 3

原创 Android RIL概述

本博客所有文章欢迎转载;转载时请注明出处前言Android作为一个通用的移动平台,其首要的功能就是通话、短信以及上网等通信功能。那么,从系统的角度来看,Android究竟是怎么实现与网络的交互的了? 这篇文章里,就来看一看Android中负责通信功能的Telephony中间层,通常也被称之为RIL(Radio Interface Layer)的具体实现原理与架构。Andro...

2016-11-19 16:56:36 19828 17

原创 Android如何绘制View

应用程序Activity启动时,Android是如何对每个Activity中的View进行绘制的了?接下来,我们就来看一看整个绘制的过程。当activity获得焦点(Focus)时,系统会发送消息要求绘制布局。Android中间层会负责整个绘制过程,但在这之前,Activity需要提供布局结构的根节点(root node)。获取到布局的根节点后,开始对布局树(所有的View组成一个View Tree

2016-11-09 15:02:46 1173

原创 Android 系统时间自动更新机制

Android中两种时间更新机制NITZNITZ(Network Identity and Time Zone,网络标识和时区),是一种用于自动配置本地的时间和日期的机制,同时也通过无线网向移动设备提供运营商信息。NITZ是自从PHASE 2+ RELEASE 96 的GSM中的可选功能,经常被用来自动更新移动电话的系统时钟。NITZ需要运营商网络支持(通过CS网络),目前国内电信、移动都支持NIT

2016-10-22 16:53:34 10879 1

原创 Linux Shell脚本快速入门

前言开始使用Ubuntu操作系统,感觉还是很好用的,但是对于Shell脚本也是零基础,于是打算学习下。以下是一个简单的小结。(学习Linux 命令对于Android的开发也大有帮助)脚本语言,既然冠之以“语言”,就说明它跟其他C/C++等编译语言在形式上是完全一样的,有变量,有函数,有if,else,while等条件分支,只是脚本语言是解释性的执行:碰到一句,解释一句,执行。写一个脚本看一看运行脚本

2016-10-14 20:31:27 730

翻译 The Dependency Inversion Principle

依赖反转原则 原文链接 by Robert C. Martin(Uncle Bob)前言这篇文章写于1996年,里边清晰而简明的介绍了“依赖反转原则”,对了解Dependency Injection很有帮助。今天看来,仍然具有很好的释疑作用。介绍我上一篇96年的文章谈到了 Liskov Substitution Principle(LSP)。 这个原则应用到了C++时,为使用公开(pu

2016-10-13 17:29:02 623

原创 Android Binder 入门介绍

背景如今,操作系统都支持多进程,进程与进程之间如何通信(交换数据,相互调用),就是人们常说的跨进程通信(Inter-Process Communication)。 在Linux中,已经提供了好几种机制用于IPC:Signals: 最早的IPC方法,一个进程通过发送信号给另一个有相同UID/GID 进程或者在同一进程组的进程Pipes(包括 named pipes): Pipes是一个单向的用于连

2016-09-26 15:26:27 1058 1

原创 Android编译系统介绍

Android编译系统基于GNU make, 也经常采用Python和bash脚本工具。不同于其他基于make的递归型编译系统,Android通过一个脚本搜索所有目录以及子目录,直到发现一个Android.mk文件为止。下图为Android编译系统的结构图(来自Embedded Android).Android编译系统主要包含了两个部分:android/build/ 该文件夹包含了整个编译系统的定

2016-09-13 16:02:20 727

原创 Android开机启动流程

Android是一个基于Linux内核的操作系统,了解Android开机流程有助于理解Linux系统的开机过程。Android系统开机流程图如下所示:                                                                                             Fig. Android B

2016-08-22 17:14:23 1747

原创 Java集合框架结构

Java Collections Framework 主要有以下几个组成部分(结构见下图):List 链表,顺序/随机访问Set 集合,用于保存一组元素,每个元素具有唯一性Map,键值映射表,键值具有唯一性,即一个值只能对应一个键值Queue,队列,支持FIFO操作,有数组和优先队列两种Java集合类大部分类都是非同步的,同步的只有 Vector, Stack, HashT

2016-08-20 22:57:01 608

原创 Android FOTA 升级流程

Android设备的系统升级有两种方式:(1)下载更新包到手机后,手动安装,即所谓“卡刷包”的形式更新系统;(2) 通过 Over-the-air(OTA)的方式更新系统。这里有一个专门的名字FOTA(Firmware Over The Air),FOTA有两种方式,一种是Full update,即将整个IMG置于升级包中,然后将升级包的IMG直接拷贝到系统;一种是Increamental upda

2016-08-18 11:17:34 18733

原创 Android 开发之单元测试

Android中的测试主要基于JUnit测试框架,主要有两种类型:本地单元测试(Local unit tests): 位于 app/src/test/java/, 直接在本地JVM上运行,不用依赖于Android中间层的API。倘若单元测试时需要用到Android Framework层的特定模块,可以使用Mockito测试框架来代替这些模块对象,由此一方面可以将代码与Android系统本身隔离开,

2016-08-17 14:33:50 1009

原创 如何在Android中利用AIDL添加service

如何在Android中利用AIDL添加serviceAIDL(Android Interface Definition Language,Android接口描述语言)用于定义Client与service进行跨进程通信的编程接口。AIDL简化了IPC通信时数据交换的流程,而程序员只需关心接口的实现即可。 注意:只有你需要其他应用程序可以通过IPC接口调用service或者需要service可以处理

2016-07-15 13:36:57 1451

原创 Java中的正则表达式

正则表达式在Java中的应用正则表达式(regular expression)是指一种操作字符串的搜索模式,可用于文本的搜索、编辑等操作。如下是一个正则表达式:^[0-9]其定义了一个搜索非数字字符的模式。正则表达式规则字符匹配符下表是常用的字符匹配符: 表1 字符匹配符 正则表达式 说明 . 匹配任意字符 ^regex 在一行的开始出匹配regex regex$

2016-06-30 16:54:17 547

转载 一些颜色工具网站

本文转载自: http://www.ruanyifeng.com/blog/2008/07/color_tools.html下面是一组颜色工具网站,非常有用。理论部分,可以参考我前几天做的颜色理论笔记。1. ColorSchemer Gallery网址:http://www.colorschemer.com/schemes/[说明] 专门

2016-06-24 17:38:04 751

原创 Android.mk 语法

IntroductionThis document describes the syntax of Android.mk build file written to describe your C and C++ source files to the Android NDK. To understand what follows, it is assumed that you have re

2016-06-15 14:47:45 1032

转载 SIM结构模型(Logical model of SIM)

本文转载自: http://techiezjunkyard-sim.blogspot.kr/2011/12/logical-model-of-sim.html以下主要介绍SIM(Subscriber Identity Module) card的逻辑接口,附件是一篇有关SIM通信协议的介绍性的文章。The files are organised in a hi

2016-05-05 17:17:58 3283

转载 Android应用加入微信分享

一、申请你的AppIDhttp://open.weixin.qq.com/  友情提示:推荐使用eclipse打包软件最后一步的MD5值去申请AppID二、官网下载libammsdk.jar包http://open.weixin.qq.com/download/?lang=zh_CN三、将libammsdk.jar复制到工程的libs目录四、

2016-04-25 11:27:48 507

转载 Comparison of Architecture presentation patterns MVP(SC),MVP(PV),PM,MVVM and MVC

本文转载自 http://www.codeproject.com/Articles/66585/Comparison-of-Architecture-presentation-patterns-MThis article will compare four important architecture presentation patterns i.e. MVP(SC),MVP(PV),P

2016-04-11 16:08:58 674

转载 Java Enum and Android Intdef/Stringdef annotation

本文转载自: https://noobcoderblog.wordpress.com/2015/04/12/java-enum-and-android-intdefstringdef-annotation/参考资料:http://developer.android.com/reference/android/support/annotation/IntDef.htmlWhen we

2016-04-01 13:40:11 1151

转载 android 中自动更新时间机制

本文转载自: http://www.2cto.com/kf/201409/334153.htmlNITZ:NITZ(Network Identity and Time Zone)或网络标识和时区,是一种用于自动配置本地的时间和日期的机制,同时也通过无线网向移动设备提供运营商信息。NITZ是自从PHASE 2+ RELEASE 96 的GSM中的可选功能,经常被用来自动更新移动电话的

2016-03-31 14:37:21 1631

转载 android 图标解决方案汇总

本文转载自:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0730/3245.html图标是决定一个app界面好坏的一个重要因素,但是也是程序员难以控制的因素,我们一直都希望有一套丰富的图标。不过如今越来越多的免费图标开始出现了,这些不仅仅是提供了几个可爱的图标而已,他们是成套的,形成了许多

2016-03-22 13:10:02 2687

原创 常用Git命令

Git是目前使用最普遍的开源分布式版本控制系统,代码托管网站Github就是基于Git作版本管理。目前Android Studio也可以使用Git来进行版本控制,用起来也很方便。这里就来看一看基本的Git命令操作。更新Git版本$ git clone git://git.kernel.org/pub/scm/git/git.git配置Git添加用户名与邮箱

2016-03-07 09:50:11 577

原创 Android Init Language

The Android Init Language consists of four broad classes of statements,which are Actions, Commands, Services, and Options.All of these are line-oriented, consisting of tokens separated bywhi

2016-03-03 18:48:02 844

原创 View中Margin与Padding的区别

在设计Android UI的Layout时,为保持对齐与美观,常需要在View中添加适当的Padding以及View添加适当的Margin,两者具体有什么区别了? 简单的说,Padding是属于View的一部分,因此在调用getWidth()/getHeight()时,Padding是包含在View的大小之中的;而Margin属于ViewGroup/Layout的一部分,用于分割View与View

2016-01-26 10:25:58 687

原创 Java的数据类型

Java 语言中,有两种数据类型: 原始类型(primitive types) 和 引用类型(reference types)。原始类型是Java语言本身实现定义的,有对应的关键字,主要有8种:byte: 8-bit符号型整数,取值范围 [-128,127] ;short: 16-bit符号型整数,取值范围 [-32768, 32767]int: 默认是32-bit 符号型

2016-01-25 14:10:14 444

原创 Java/Android源码在线阅读网站

最近发现一个不用翻墙也可以在线阅读 Java/Android 源代码的网站,上面有各种版本的源码,很实用: GrepCode

2016-01-25 11:28:57 2786

原创 也谈拜金主义

在Youtube上看到一个视频,讲一个河北承德的小伙子梅爱偲高考失利后,到乌克兰留学,并在那里开始屌丝逆袭之路:毕业后,哥们在乌克兰找到了工作,做起了外贸,有声有色。因为平时爱好摄影,一次兼职活动,他认识了比自己小十多岁,彼时还在读高中、学声学的乌克兰美女,后来顺理成章的成为了他的妻子。看这哥们妻子可爱迷人的样子,真是有点羡煞人。。。从视频中来看,小伙子长的挺高,有一身肉,看得出来经常在健

2016-01-20 21:44:07 710

BroadR_Reach_Automotive_Spec_V3.0.pdf

车载以太网SPEC英文版

2021-05-13

空空如也

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

TA关注的人

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