![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android系统
文章平均质量分 80
thinkandchange
这个作者很懒,什么都没留下…
展开
-
android viewstub
在开发应用程序的时候,经常会遇到这样的情况,会在运行时动态根据条件来决定显示哪个View或某个布局。那么最通常的想法就是把可能用到的View都写在上面,先把它们的可见性都设为View.GONE,然后在代码中动态的更改它的可见性。这样的做法的优点是逻辑简单而且控制起来比较灵活。但是它的缺点就是,耗费资源。虽然把View的初始可见View.GONE但是在Inflate布局的时候View仍然会被Infl转载 2012-12-08 20:45:43 · 523 阅读 · 0 评论 -
Android核心分析之(26)Android GDI之SurfaceFlinger
Android GDI之SurfaceFlinger SurfaceFinger按英文翻译过来就是Surface投递者。SufaceFlinger的构成并不是太复杂,复杂的是他的客户端建构。SufaceFlinger主要功能是: 1) 将Layers (Surfaces) 内容的刷新到屏幕上 2) 维持Layer的Zorder序列,并对Layer最终输出做出裁剪计算。 3)转载 2012-08-22 22:21:47 · 706 阅读 · 0 评论 -
Android核心分析之(25)Android GDI之共享缓冲区机制
Androird GDI之共享缓冲区机制 1 native_handle_t对private_handle_t 的包裹 private_handle_t是gralloc.so使用的本地缓冲区私有的数据结构,而Native_handle_t是上层抽象的可以在进程间传递的数据结构。在客户端是如何还原所传递的数据结构呢?首先看看native_handle_t对private_handle转载 2012-08-22 22:20:11 · 1223 阅读 · 0 评论 -
获取本机号码及sim卡信息
一、SIM卡存储的数据可分为四类,它们分别是:第一类是固定存放的数据。这类数据在移动电话机被出售之前由SIM卡中心写入,包括国际移动用户识别号(IMSI)、鉴权密钥(KI)、鉴权和加密算法等等。第二类是暂时存放的有关网络的数据。如位置区域识别码(LAI)、移动用户暂时识别码(TMSI)、禁止接入的公共电话网代码等。第三类是相关的业务代码,如个人识别码(PIN)、原创 2012-08-20 13:36:52 · 8923 阅读 · 0 评论 -
Android核心分析之(19)Android电话系统之GSMCallTracker
Android电话系统之GSMCallTracker通话连接管理GSMCallTracker在本质上是一个Handler。GSMCallTracker是Android的通话管理层。GSMCallTracker建立了ConnectionList来管理现行的通话连接,并向上层提供电话调用接口。在GSMCallTrack转载 2012-08-21 14:37:53 · 2055 阅读 · 0 评论 -
Android核心分析之(17)电话系统之rilD
Android电话系统之-rildRild是Init进程启动的一个本地服务,这个本地服务并没有使用Binder之类的通讯手段,而是采用了socket通讯这种方式。RIL(Radio Interface Layer)Android给出了一个ril实现框架。由于Android开发者使用的Modem是不一样的,各种指令格式,初始化序列都可能不一样,GSM和CDMA就差别更大了,所以为了消转载 2012-08-21 14:35:23 · 759 阅读 · 0 评论 -
Android核心分析之(15)Android输入系统之输入路径详解
Android用户事件输入路径1 输入路径的一般原理 按键,鼠标消息从收集到最终将发送到焦点窗口,要经历怎样的路径,是Android GWES设计方案中需要详细考虑的问题。按键,鼠标等用户消息消息的处理可分为不同的情况进行判定:(1)用户输入根据系统状况是否应该派送。如在ScreenOff的情况下,在按键属于特殊按键的情况下等(2)是否有拦截Listene转载 2012-08-21 14:33:39 · 330 阅读 · 0 评论 -
Android 核心分析之(13)Android GWES之Android窗口管理
Android GWES之Android窗口管理1基本构架原理 Android的窗口管理是C/S模式的。Android中的Window是表示Top Level等顶级窗口的概念。DecorView是Window的Top-Level View,这个View我称之为主View,DecorView会缺省的attach到Activity的主窗口中。主View被加入到WindowManage转载 2012-08-21 14:31:49 · 423 阅读 · 0 评论 -
Android核心分析 之(9)Zygote Service
Zygote Service在本章我们会接触到这两个单词:Zygote [生物] 受精卵, 接合子, 接合体Spawn:产卵通过这两个单词,我们就可以大体知道Zygote是干什么的了,就是叫老母鸡下蛋。通过“Zygote”产出不同的子“Zygote”。从大的架构上讲,Zygote是一个简单的典型C/S结构。其他进程作为一个客服端向Zygote发出”孵化”转载 2012-08-21 14:27:44 · 287 阅读 · 0 评论 -
Android 核心分析 之(8)Android 启动过程详解
Android 启动过程详解Android从Linux系统启动有4个步骤;(1) init进程启动(2) Native服务启动(3) System Server,Android服务启动(4) Home启动总体启动框架图如:第一步:initial进程(system/core/init)转载 2012-08-21 14:26:49 · 331 阅读 · 0 评论 -
Android 核心分析 之(5)基本空间划分
基本空间划分Google给了我们一张系统架构图,在这张图上我们可以看到Android的大体框架组成。从上图可以看到:Android Applications,Application Framework,Dalvik Virtual Machine,Linux。如果将Android泛化,我们可以将系统划分成两部分:2012-3-17 09:转载 2012-08-21 14:23:24 · 364 阅读 · 0 评论 -
Android核心分析之(4)手机的软件形态
手机的软件形态 上节我给出了手机的硬件树,本节将给出手机软件形态树。主要突出手机软件涵盖的内容。通过该思维导图,我们可以看到手机软件所涉及到的方方面面,Android所涉及到的内容也不会超过下面所示太多,这个也是Andoid系统外特性空间所要展示的,这个也是Android设计者需要考虑管理的大部分内容,通过下面的整理,我们可以让我们的思维更加贴近Android设计意图,从而更深入转载 2012-08-21 14:22:26 · 610 阅读 · 0 评论 -
Android核心分析之(27)Android GDI 之SurfaceFlinger之动态结构...
SurfaceFlinger对象建立过程示意1 SurfaceSession的建立 客户端请求建立Surface时,首先在要与SurfaceFlinger建立一个Session,然后再Session上建立一个Connection通过概念返回Bclient对象。WindowManagerService在添加第一个窗口前会检查SurfaceSession是否建立,如何没有建立,将会新转载 2012-08-22 22:22:50 · 550 阅读 · 0 评论 -
Android核心分析之(28)Android GDI之Surface&Canvas
Surface&Canvas Canvas为在画布的意思。Android上层的作图几乎都通过Canvas实例来完成,其实Canvas更多是一种接口的包装。drawPaints ,drawPoints,drawRect,drawBitmap ...1 Canvas与Surface之间本质关系 对于本节,我们不去研究Skia图形引擎本身,我们需要了解的我们转载 2012-08-22 22:23:50 · 778 阅读 · 0 评论 -
Android核心分析之(21)Android应用框架之AndroidApplication
Android Application Android提供给开发程序员的概念空间中Application只是一个松散的表征概念,没有多少实质上的表征。在Android实际空间中看不到实际意义上的应用程序的概念,即使有一个叫Application的类,这个也就是个应用程序上下文状态,是一个极度弱化的概念。Application只是一个空间范畴的概念,Application就是Activ转载 2012-08-22 22:14:51 · 507 阅读 · 0 评论 -
android MMS源码分析
从软件的功能角度来讲,Mms分为对话列表,消息列表,短信编辑,彩信编辑,短信显示,彩信显示和配置。从实现的角度来看,它分为GUI展示层,发送/接收,彩信解析,彩信附件,信息数据等,这些分类对应着源码中的各种包。源码导航Mms的源码的位置在于android/packages/apps/Mms其中Mms/src/com/android/mms里面都是Mms相关的代码,而Mms/sr转载 2012-12-08 20:44:24 · 2714 阅读 · 1 评论 -
Frameworks层短信收发流程
短信部分:短信的发送,Framework部分从SmsManager的sendTextMessage(普通短信,无分段)与sendMultipartTextMessage(长短信,已分段)开始,一直到RIL。主要涉及到的类有。SmsManager、Isms、IccSmsInterfaceManager、SMSDispatcher、ImsSMSDispatcher、GsmSMSDispatcher转载 2012-09-17 09:23:47 · 665 阅读 · 0 评论 -
android debug
现在维护和定制Android的需求越来越多,做的人也越来越多,而Google直接Release出来的源码中又有很多Bug和不合理的地方,特别是原生的应用,如Mms,Browser, Email, Contacts等。定制或做Android解决方案第一步就是要修复原生的Bug以得到一个稳定的系统。1. 仔细观察Bug的特性了解Bug所涉及的流程和模块有哪些,以及是什么样的Bug,Ex原创 2012-09-13 19:30:04 · 675 阅读 · 0 评论 -
android log分析
Android Log分析方法1、一般哪几种情况会产生log文件? 1)程序异常退出,uncaused exception 2)程序强制关闭,Force Closed (简称FC) 3)程序无响应,Application No Response简称ANR)2、何时会产生ANR? 1)界面操作(点击按钮):系统响应时间超过5秒 2)Handle转载 2012-09-13 19:37:29 · 636 阅读 · 0 评论 -
Mms源码结构
这里的Mms名称并不准确,因为它是一个应用程序的名字,这个应用程序是Android上面的信息应用程序,它即能处理短信SMS(Short Messaging Service),也能处理彩信(Multimedia MessagingService)。它是除电话程序外,另一个非常重要的手机系统核心应用程序,因为对于手机来讲,最重要的二个功能就是电话功能和信息功能。在功能手机时代,是这样,到了智能手机转载 2012-08-10 22:58:00 · 1185 阅读 · 0 评论 -
android双卡手机怎样分别获得两个卡的信号强度
你插卡的时候RIL层会向ap侧上报信号。 从RIL.java入手,跟踪RIL_UNSOL_RESPONSE_VOICE_NETWORK_STATE_CHANGED这个状态,底层检测到信号有改变,这个状态就会改变,java端根据这个状态去更新上层界面的显示。 具体的你从RIL.java这个类processUnsolicited方法的RIL_UNSOL_RESPONSE_VOICE_NET转载 2012-09-07 07:59:39 · 4518 阅读 · 0 评论 -
android 获取sim卡operator
android 获取sim卡运营商信息TelephonyManager tm = (TelephonyManager)Context.getSystemService(Context.TELEPHONY_SERVICE); TelephonyManager 的使用 TelephonyManager 提供设备上获取通讯服务信息的入口,应用程序使用这个类的方法来获取电话的服务商或者状态。程序也原创 2012-08-24 18:19:33 · 5796 阅读 · 0 评论 -
Android环境搭建
工具下载:jdk6 :http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u26-download-400750.htmleclipse :www.eclipse.org1.(ubuntu)jdk-1_5安装:chmod +x jdk-1_5_0_22-linux-amd64.binsudo m原创 2012-08-30 22:37:47 · 1755 阅读 · 0 评论 -
apn管理
1、简介:每个运营商都有特定的一些apn,android 系统怎么识别和管理这些apn,本文将对这个问题做一些讨论和研究。2、分析2.1 流程简介神秘的apn到底是怎么一回事,为什么插一张移动卡就会有China Mobile 的3个apn,这些数据怎么获取的?如下图所示: 流程简介:1)系统启动的时候会将apns.xml 、apns-co转载 2012-08-16 16:33:01 · 2487 阅读 · 0 评论 -
Android核心分析之(24)Android GDI之显示缓冲管理
Android GDI之屏幕设备管理-动态链接库 万丈高楼从地起,从最根源的硬件帧缓冲区开始。我们知道显示FrameBuffer在系统中就是一段内存,GDI的工作就是把需要输出的内容放入到该段内存的某个位置。我们从基本的点(像素点)和基本的缓冲区操作开始。1 基本知识1.1点的格式 对于不同的LCD来讲,FrameBuffer的二进制格式不一样,并且可以转载 2012-08-22 22:18:17 · 542 阅读 · 0 评论 -
Android核心分析之(23)Andoird GDI之基本原理及其总体框架
Android GDI基本框架 在Android中所涉及的概念和代码最多,最繁杂的就是GDI相关的代码了。但是本质从抽象上来讲,这么多的代码和框架就干了一件事情:对显示缓冲区的操作和管理。 GDI主要管理图形图像的输出,从整体方向上来看,GDI可以被认为是一个物理屏幕使用的管理器。因为在实际的产品中,我们需要在物理屏幕上输出不同的窗口,而每个窗口认为自己独占屏幕的使用,转载 2012-08-22 22:17:29 · 728 阅读 · 0 评论 -
Android核心分析之(22)Android应用框架之Activity
Activity设计框架3.1 外特性空间的Activity 我们先来看看,Android应用开发人员接触的外特性空间中的Activity,对于AMS来讲,这个Activity就是客服端的Activity。应用程序员在建立Android应用时,构建Activity的子类就是Andoid外特性空间展现的接口。我们可以从下面的简单的例子描述看看Activity,到底如何建立的。 DemoA转载 2012-08-22 22:15:57 · 552 阅读 · 0 评论 -
Android是什么 之(3)手机之硬件形态
手机硬件形态本节可能与Android无关,但是Android系统现在这个阶段更多的是移动终端形态的开发平台,本节给出了Android背后的工作-Android管理的硬件是什么,Android的本质就是要管理好这些硬件部分,为用户提供一个体验更好,速度更快的智能移动终端。对手机硬件形态的认识是要让我们对手机硬件组成有个感性的认识,让程序员知道系统中的代码是管理那一部分的,即我们堆砖头的目的是转载 2012-08-21 14:21:40 · 570 阅读 · 0 评论 -
Android核心分析 之(2)方法论探讨之概念空间篇
我们潜意识就不想用计算机的方式来思考问题,我们有自己的思维描述方式,越是接近我们思维描述方式,我们越容易接受和使用。各种计算机语言,建模工具,不外乎就是建立一个更接近人的思维方式的概念空间,再使用工具从该概念空间向另外一个概念空间映射,我称之为人性思维空间向01序列描述空间的一个映射。实现方面来看,系统就是一个翻译器,将机器性更加人性化的一种机制。大学计算机经典课“计算机体系结构”,其他的可以忘记转载 2012-08-21 14:20:55 · 379 阅读 · 0 评论 -
彩信应用总结
看彩信代码差不多有一个多月了,觉得有必要做下笔记,我看的是1.5cupcake的代码,也大致浏览了一下2.2froyo的,差别不大。看代码的时候最好结合一些WAP协议来看,比如WAP-206-MMSCTR-20020115-a,WAP-209-MMSEncapsulation-20020105-a,另外还可以看一下SMIL手册及其 MMS 应用指南(Series 60 Developer Plat转载 2012-07-31 17:21:25 · 630 阅读 · 0 评论 -
hook键任意键唤醒屏幕 黑屏时hook键挂断电话
通话,黑屏时按hook键不能挂断电话,因为通话过程黑屏时进入onStop状态,此时不能相应任何keyEvent,按hook键无效;通话黑屏时要按hook键来挂断电话,必须使得hook键来唤醒屏幕;本文讲述hook键及其他任意键比如音量键如何唤醒屏幕;frameworks/base/policy/src/com/android/internal/policy/impl/KeyguardV原创 2012-08-14 19:31:57 · 1797 阅读 · 0 评论 -
按power键后屏幕亮度
在Android2.2 中,当短按power 键后屏幕立即全黑,我想修改这个地方让它不全黑应该怎么办呢?源码中哪个地方是设置屏幕全黑的?Resolve:Power.java (frameworks/base/core/java/android/os/)public static final int BRIGHTNESS_OFF = 0; // 值的范围 0~255, 0 代表全黑,原创 2012-08-14 19:21:52 · 708 阅读 · 0 评论 -
关机屏蔽power键
android关机过程中如何屏蔽掉power键?小弟在做一个项目,具体如下:一般情况下长按android 开关机键,会关机,关机的同时屏幕显示关机动画,比如是一个旋转进度动画....正常情况下,关机动画结束,关机完成,屏幕变黑,但是,在关机过程中,即还在播放关机动画时,你如果按power键,会发现屏幕变黑,再点击,屏幕变亮,继续能看到关机动画,现在小弟想做的是在关机过程中屏蔽power键,即在原创 2012-08-14 19:25:45 · 2979 阅读 · 0 评论 -
Mms attachment的添加和删除
添加附件。 在ComposeMessageActivity里 addAttachment(int type) 函数 根据type的不同,分成6个case case A: MediaSelectListActivity.ADD_IMAGE 用gallery选图片: MessageUtils.selectImage(this, REQUEST_CODE_AT转载 2012-08-10 22:59:34 · 1277 阅读 · 0 评论 -
error: insufficient permissions for device
参考shily@hh-desktop:~$cd ~/sdk/android-sdk_eng.sdk_linux-x86/toolsshily@hh-desktop:~/sdk/android-sdk_eng.sdk_linux-x86/tools$ ls -l adb-rwxr-xr-x 1 shily shily 341694 2010-05-11 05:46 adbshi原创 2012-07-05 09:25:47 · 1250 阅读 · 0 评论 -
android 单独模块的开发编译(如Calculator)
===========这文章是以前写的,这种做法确实不太好;=======================================应用开发可以不打断点,有更简单方便的方法;=================================mmm pakages/apps/Settings后把out/target/product/projectName/system/ap原创 2012-06-02 17:17:51 · 1830 阅读 · 2 评论 -
Android工程编译全过程
现在很多人想对Android工程的编译和打包进行自动化,比如建立每日构建系统、自动生成发布文件等等。这些都需要我们对Android工程的编译和打包有一个深入的理解,至少要知道它的每一步都做了什么,需要什么环境和工具,输入和输出是什么。那么我们就来挖掘一下Android的编译过程中的细节。首先,我们假定你的系统(什么系统都行,不限于Linux还是Windows系统,当然,我在这里默认使用Li转载 2012-07-20 16:45:02 · 540 阅读 · 0 评论 -
android输入法ImeOptions
默认情况下软键盘右下角的按钮为“下一个”,点击会到下一个输入框,保持软键盘 设置 android:imeOptions="actionDone" ,软键盘下方变成“完成”,点击后光标保持在原来的输入框上,并且软键盘关闭 android:imeOptions="actionSend" 软键盘下方变成“发送”,点击后光标移动下一个转载 2012-08-03 06:44:58 · 3515 阅读 · 0 评论 -
AlertDialog:Unable to add window -- token null is not for an application
在listView的onItemClick函数中显示一个AlertDialog,出现如下错误Xml代码 08-07 21:26:43.506: ERROR/AndroidRuntime(9390): android.view.WindowManager$BadTokenException: Unable to add window -- token null is n转载 2012-08-03 06:41:21 · 728 阅读 · 0 评论 -
如何向android的framework里添加新类,新方法
一、添加类google对于所有的类和API,分为开放式和不开放式两种。所谓的开放式就是值javadoc所包含的,并不是java中有public和private,而是跟javadoc有关系,代码 没有关系。在开放式的类中增加了一个变量,而又没隐藏,导致和原API的doc不一致造成的就会有错。通过提示,有2个方法可以解决 该问题:1、将新增加的变量或方法加上"@hide" 的注释,注意原创 2012-07-14 16:13:58 · 2486 阅读 · 0 评论