自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

omnispace的博客

专注AI,物联网,区块链,安卓以及相关安全技术

转载 理论经典:TCP协议的3次握手与4次挥手过程详解

摘要: 本文将分别讲解经典的TCP协议建立连接(所谓的“3次握手”)和断开连接(所谓的“4次挥手”)的过程。 1、前言 尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务。TCP提供一种面向连接的、可靠的字节流服务。 面向连接意味着两个使用T...

2016-09-29 14:42:52 41090 5

转载 Android5.1.1源码 - 让某个APP以解释执行模式运行

[实践] Android5.1.1源码 - 让某个APP以解释执行模式运行 @(Android研究)[Android5.1.1|APP解释执行] 前言 本文的实践修改了Android5.1.1的源码。 本文只简单的讲了一下原理。在“实践”一节讲了具体做法。 本文的内容涉及Art模式下de...

2016-09-29 14:38:43 968 0

转载 Android安全开发之Provider组件安全

1 Content Provider组件简介 Content Provider组件是Android应用的重要组件之一,管理对数据的访问,主要用于不同的应用程序之间实现数据共享的功能。Content Provider的数据源不止包括SQLite数据库,还可以是文件数据。通过将数据储存层和应用层...

2016-09-29 14:01:52 519 0

转载 深入讲解Android Property机制

摘要: 本文以Android 4.4为准,深入讲解Android Property机制的运作机理。   深入讲解Android Property机制 侯亮 1      概述      Android系统(本文以Android 4.4为准)的属性(Property)机制有...

2016-09-29 13:55:36 362 0

转载 聊一聊Android的消息机制

摘要: 从技术实现上来说,消息机制还是比较简单的。从大的方面讲,不光是Android平台,各种平台的消息机制的原理基本上都是相近的。 本文将基于Android 4.4代码,为大家剖析一下Android的消息机制。 聊一聊Android的消息机制 侯 亮 1概述 在Android...

2016-09-29 13:53:36 633 0

转载 Android Service演义

(本文以Android 5.1为准) 1.概述 在Android平台上,那种持续性工作一般都是由service来执行的。不少初学者总是搞不清service和线程、进程之间的关系,这当然会影响到他们开展具体的开发工作。 其实,简单说起来,service和线程、进程是没什么关系的。我...

2016-09-29 13:51:49 369 0

转载 品茗论道说广播(Broadcast内部机制讲解)

1 概述         我们在编写Android程序时,常常会用到广播(Broadcast)机制。从易用性的角度来说,使用广播是非常简单的。不过,这个不是本文关心的重点,我们希望探索得再深入一点儿。我想,许多人也不想仅仅停留在使用广播的阶段,而是希望了解一些广播机制的内部机理。如果是这样的话,...

2016-09-29 13:49:23 659 0

转载 红茶一杯话Binder(传输机制篇_下)

1 事务的传递和处理         从IPCThreadState的角度看,它的transact()函数是通过向binder驱动发出BC_TRANSACTION语义,来表达其传输意图的,而后如有必要,它会等待从binder发回的回馈,这些回馈语义常常以“BR_”开头。另一方面,当IPCThre...

2016-09-29 13:47:38 601 0

转载 红茶一杯话Binder(传输机制篇_中)

1 谈谈底层IPC机制吧         在上一篇文章的最后,我们说到BpBinder将数据发到了Binder驱动。然而在驱动层,这部分数据又是如何传递到BBinder一侧的呢?这里面到底藏着什么猫腻?另外,上一篇文章虽然阐述了4棵红黑树,但是并未说明红黑树的节点到底是怎么产生的。现在,我们试着...

2016-09-29 13:45:59 427 0

转载 红茶一杯话Binder(传输机制篇_上)

1 Binder是如何做到精确打击的?         我们先问一个问题,binder机制到底是如何从代理对象找到其对应的binder实体呢?难道它有某种制导装置吗?要回答这个问题,我们只能静下心来研究binder驱动的代码。在本系列文档的初始篇中,我们曾经介绍过ProcessState,这个结...

2016-09-29 13:44:52 408 0

转载 红茶一杯话Binder(ServiceManager篇)

1.先说一个大概         Android平台的一个基本设计理念是构造一个相对平坦的功能集合,这些功能可能会身处于不同的进程中,然而却可以高效地整合到一起,实现不同的用户需求。这就必须打破过去各个孤立App所形成的天然藩篱。为此,Android提供了Binder机制。         在...

2016-09-29 13:42:39 484 0

转载 红茶一杯话Binder

1 什么是Binder?        简单地说,Binder是Android平台上的一种跨进程交互技术。该技术最早并不是由Google公司提出的,它的前身是Be Inc公司开发的OpenBinder,而且在Palm中也有应用。后来OpenBinder的作者Dianne Hackborn加入了G...

2016-09-29 13:40:47 554 0

转载 说说PendingIntent的内部机制

1 概述         在Android中,我们常常使用PendingIntent来表达一种“留待日后处理”的意思。从这个角度来说,PendingIntent可以被理解为一种特殊的异步处理机制。不过,单就命名而言,PendingIntent其实具有一定误导性,因为它既不继承于Intent,也不...

2016-09-29 13:35:51 399 0

转载 Android background processing with Handlers, AsyncTask and Loaders - Tutorial

Table of Contents 1. Background processing in Android 1.1. Why using concurrency? 1.2. Main thread 1.3. Threading in Android 1.4. ...

2016-09-28 06:55:34 670 0

转载 Android异步任务机制之AsycTask

在Android中实现异步任务机制有两种方式,Handler和AsyncTask。 Handler已经在上一篇文章 异步消息处理机制(Handler 、 Looper 、MessageQueue)源码解析 说过了。 本篇就说说AsyncTask的异步实现。 1、什么时...

2016-09-28 06:53:27 447 0

转载 Android 异步消息处理机制(Handler 、 Looper 、MessageQueue)源码解析

1、Handler的由来   当程序第一次启动的时候,Android会同时启动一条主线程( Main Thread)来负责处理与UI相关的事件,我们叫做UI线程。   Android的UI操作并不是线程安全的(出于性能优化考虑),意味着如果多个线程并发操作UI线程,可能导致线程...

2016-09-28 06:49:27 429 0

转载 android的消息处理机制(图+源码分析)——Looper,Handler,Message

作为一个大三的预备程序员,我学习android的一大乐趣是可以通过源码学习google大牛们的设计思想。android源码中包含了大量的设计模式,除此以外,android sdk还精心为我们设计了各种helper类,对于和我一样渴望水平得到进阶的人来说,都太值得一读了。这不,前几天为了了解andr...

2016-09-28 06:41:20 414 0

转载 Android6.0源码分析—— Zygote进程分析(补充)

原文地址: http://blog.csdn.net/a34140974/article/details/50915307 此博文为《Android5.0源码分析—— Zygote进程分析》的补充 我们已经知道Android 5.0已经默认了ART,今天本想回去查看一下这个部分...

2016-09-28 06:38:04 455 0

转载 Android5.0源码分析—— Zygote进程分析

1      Zygote简介 Android的应用程序一般都是由Java语言编写而成的,这样的应用程序需要运行在独自的Dalvik虚拟机之上(当然,5.0好像默认了ART了)。但是,如果在每一个进程启动时都在物理内存中创建和初始化一个Dalvik虚拟机,这无疑对系统的性能造成很大的影响。Zyg...

2016-09-28 06:34:48 502 0

转载 Android6.0的SMS(短信)源码分析--短信接收

1     SMS接收流程 Android6.0中对短信的处理比起老版本还是变化有点大的。在分析源代码之前,我们可以先猜测一下Android中接收短信的大致流程。首先根据之前分析phone应用的经验,猜测最先接收到短信消息的肯定是Modem,接着上报的RILJ,RILJ在通知到XXXTracke...

2016-09-28 06:28:43 3341 1

转载 Android6.0的SMS(短信)源码分析--短信发送

1     SMS发送流程 1.1   SmsManager Android发送短信的接口可以认为是SmsManager,当然并不是所有的App都可以发送短信的,必须配置相关的权限。App中可以通过SmsManager.getDefault()得到SmsManager的单例。首先来SmsMan...

2016-09-28 06:27:25 4188 0

转载 Android6.0的Looper源码分析(1)

1      Looper简介 Android在Java标准线程模型的基础上,提供了消息驱动机制,用于多线程之间的通信。而其具体实现就是Looper。 Android Looper的实现主要包括了3个概念:Message,MessageQueue,Handler,Looper。其中Messag...

2016-09-28 06:23:11 355 0

转载 Android Camera2 API Explained

Compared with the old camera API, the Camera2 API introduced in the L is a lot more complex: more than ten classes are involved, calls (almost always...

2016-09-27 15:34:58 580 0

转载 Android动态加载技术三个关键问题详解

本文摘选自任玉刚著《Android开发艺术探索》,介绍了Android插件化技术的原理和三个关键问题,并给出了作者自己发起的开源插件化框架。 动态加载技术(也叫插件化技术)在技术驱动型的公司中扮演着相当重要的角色,当项目越来越庞大的时候,需要通过插件化来减轻应用的内存和CPU占用,还可以实现...

2016-09-27 15:24:00 364 0

转载 从源码出发深入理解 Android Service

0X00 Service 基础知识 Service 作为 Android 提供的四大组件之一,主要负责一些没有前台显示的后台任务。即使应用本身不再可见,Service 的属性也能使得其在后台运行。除此之外,Service 也可以通过 Binder 机制,与界面甚至其他应用进行进程间通信,以实...

2016-09-27 15:13:38 354 0

转载 ANDROID STUDIO详细教程汇总

这个系列教程在Android Studio Beta版本的时候就开始着手编写,当时就认为AS绝对会成为Android开发的未来,时至今日印证了当时的观点,作为国内最早一批AS教程之一,可以帮助从未接触过AS和Gradle的初学者很快上手。 Android Studio系列教程一 —- 下载与安装...

2016-09-27 15:06:06 341 0

转载 ANDROID 开发你需要了解的 GRADLE 配置

这两天很忙,在解决项目中遇到的一些疑难杂症,今天抽空看了后台,然后又一堆人留言说「张哥拖更啦,每天刷好几遍只为看张哥文章」,好吧,今天无论如何得忙中偷闲来给你们更新一篇。 之前发过这篇文章「给 Android 初学者的 Gradle 知识普及」,很多人表示终于了解了 Gradle 咋回事了,但是...

2016-09-27 15:03:11 323 0

转载 Java常见面试题及答案

java常见面试题及答案 1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程。Java 源文件被编译成能被 Java 虚拟机执行的字节码文件。 Java 被设计成允许应用程序可以运行在任意的平台,而不需要...

2016-09-27 14:56:17 699 0

转载 Android存储系统之架构篇

一、概述 本文讲述Android存储系统的架构与设计,涉及到最为核心的便是MountService和Vold这两个模块以及之间的交互。上一篇文章Android存储系统之源码篇从源码角度介绍相关模块的创建与启动过程,那么本文主要从全局角度把握和剖析Android的存储系统。 MountS...

2016-09-27 14:51:11 1988 0

转载 Binder源码分析之Java层(原)

前面的几节中我们介绍了Native层Binder通讯的原理和用法,那么在Java层如何使用Binder通讯呢?其原理又与Native层的Binder有什么关系呢?         与Native层的ServiceManager类似,Android在Java层也有一个ServiceManager用...

2016-09-27 07:35:43 406 0

转载 Binder源码分析之Native层(原)

前面两节中介绍了Binder机制中的ServiceManager和Binder驱动,在这一节中,我们来介绍Native中的Binder通讯。         为了更好的理解过程,我们挑选Native中的MediaServer进行分析。 一、MediaServer加载过程 ...

2016-09-27 07:34:13 371 0

转载 Binder源码分析之驱动层(原)

前言         在《Binder源码分析之ServiceManager》一文中我们介绍了利用Binder进行通讯的流程,即ServiceManager把自己注册为“管理员”之后,负责其他Service的add操作,或者其他Client的get操作。在这个过程中,有一些接口我们并没有深入分析...

2016-09-27 07:32:50 410 0

转载 Binder源码分析之ServiceManager(原)

ServiceManager作为Native层Service的管理员,有着极其重要的作用,主要表现两个方面:         1、对于服务端来说,系统所有的服务提供者都需要向ServiceManager注册。         2、对于客户端来说,所有客户端如果想要获得某个系统服务的代理,必须向...

2016-09-27 07:31:36 336 0

转载 两种AIDL用法分析(原)

我们在前面介绍了关于AIDL的两种用法,第一种用法主要用在应用层中(应用层的AIDL调用),第二种用法主要用在framework中(Framework中的AIDL调用)。但是这两种用法中都提到了Stub、asInterface等关键字,在这一节中我们主要针对AIDL内部机制的分析来深入理解AIDL...

2016-09-27 07:30:23 292 0

转载 Framework中的AIDL(原)

在上一节(应用层的AIDL调用)中我们介绍了应用层中的AIDL用法, 这一节中,我们来看一下系统Framework层中更为普通的AIDL用法。         为了便于分析,我们挑选了ITelephonyRegistry这个SystemService进行分析。这个服务的主要作用就是对通话相关的事...

2016-09-27 07:28:22 376 0

转载 应用层的AIDL用法(原)

一、什么是AIDL服务   一般创建的服务并不能被其他的应用程序访问。为了使其他的应用程序也可以访问本应用程序提供的服务,Android系统采用了远程过程调用(Remote Procedure Call,RPC)方式来实现。与很多其他的基于RPC的解决方案一样,Android...

2016-09-27 07:26:45 336 0

转载 Android Binder机制(1501210451 张志康)

本文主要分析native层和Java层的Android binder通信机制。 binder是Android最为常见的进程通信机制之一,其驱动和通信库是binder的核心,分别由C和C++编写,应用程序通过JNI同底层库进行关联,也就是native层驱动和通信库通过Java层包装后被Java层调用...

2016-09-27 07:25:12 382 0

转载 Android Binder ProcessState & IPCThreadState相关介绍

之前几篇博客我们介绍了传统Binder的使用方法,包括c层和java层,这篇博客我们主要介绍下ProcessState和IPCThreadState类的相关方法。 一、正常demon binder调用流程 在一个传统的demon中,如果我们要使用Binder通信,代码大致如...

2016-09-26 16:50:49 746 0

原创 How to call a android/native service from a native/android (java) code

This blogs collects some stuff found online regarding: Native (c/c++) ---- call ----> android (java) service Android (java) ---- call ---->...

2016-09-26 16:39:04 652 0

转载 Android 6.0 PowerManagerService状态分析

这篇博客我们主要分析下PowerManagerService的各个状态,主要从goToSleep,wakeUp,userActivity,nap函数作为入口分析。 一、PowerManagerService的goToSleep函数  我们先来看下goToSleep函数: goToSl...

2016-09-25 13:39:23 1039 0

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