随笔分类 -  Android

摘要:开机SystemServer到ActivityManagerService启动过程 一 从Systemserver到AMS zygote-> systemserver:java入层口: 接下来继续看SystemServer run函数执行过程: 以上6个步骤是SystemServer中关于AMS的调 阅读全文
posted @ 2016-08-14 22:05 __Shadow 阅读(7862) 评论(0) 推荐(2) 编辑
摘要:在android中的文件放在不同位置,它们的读取方式也有一些不同。本文对android中对资源文件的读取、数据区文件的读取、SD卡文件的读取及RandomAccessFile的方式和方法进行了整理。供参考。一、资源文件的读取:apk中资源文件 1) 从resource的raw中读取文件数据:try{ //得到资源中的Raw数据流 InputStream in = getResources().openRawResource(R.raw.test); //得到数据的大小 int length = in.available(); ... 阅读全文
posted @ 2013-03-04 19:51 __Shadow 阅读(41272) 评论(1) 推荐(6) 编辑
摘要:CDMA手机两种实现模式: 机卡分离式:用户信息写在单独的UIM卡 机卡一体式:用户信息写在手机中的 这个跟CDMA Subscription模式有关,对于我们来说使用的是独立UIM卡,在软件里面使用什么方式,跟一项NV值有关,但这项值却无法使用QXDM来更改,确切的说是改了,重新开机之后值又被写回去了, 所以这项NV值应当是在代码中设置的,高通一直说在网络设置里面,但是也一直没有找到,看了代码才知道由于某种原因没显示出来,都不管了,直接找到CDMA信息读取模式设置代码改成UIM模式即可。下面看这个设置的过程:public static void makeDefaultPhone(Cont.. 阅读全文
posted @ 2013-02-25 10:01 __Shadow 阅读(3605) 评论(0) 推荐(1) 编辑
摘要:GSMPhone与CDMAPhone切换过程Phone创建过程 Phone APP开机启动,会去创建Phone:public static void makeDefaultPhone(Context context) { // Get preferred network mode 根据网络设置, // 否则默认PREFERRED_NETWORK_MODE 为= NETWORK_MODE_WCDMA_PREF; int preferredNetworkMode = RILConstants.PREFERRED_NETWORK_MODE; if (BaseCommands... 阅读全文
posted @ 2013-02-23 16:23 __Shadow 阅读(5184) 评论(0) 推荐(0) 编辑
摘要:1.dB dB是一个表征相对值的值,纯粹的比值,只表示两个量的相对大小关系,没有单位,当考虑甲的功率相比于乙功率大或小多少个dB时,按下面的计算公式:10log(甲功率/乙功率),如果采用两者的电压比计算,要用20log(甲电压/乙电压)。) [例] 甲功率比乙功率大一倍,那么10lg(甲功率/乙功率)=10lg2=3dB。也就是说,甲的功率比乙的功率大3 dB。 反之,如果甲的功率是乙的功率的一半,则甲的功率比乙的功率小3 dB。2.dBm dBm是一个表示功率绝对值的值(也可以认为是以1mW功率为基准的一个比值),计算公式为:10log(功率值/1mw)。 [例] 如果功率P为1... 阅读全文
posted @ 2013-02-22 18:10 __Shadow 阅读(37217) 评论(0) 推荐(0) 编辑
摘要:遭遇: 遇到这样一个问题: 使用GSM卡,拨打112时提示各种紧急号码作用…… 使用CMDA卡,拨打112时提示拨打的号码是空号??这让我有点不知所以然,网上找到下面这篇文章,说的很详细,转载了。问题描述 紧急号码在过去的几个项目的开发中一直是难下定论的一项问题,原因在于针对不同CP平台,不同制式的数据网络,不同的运营商,都有不同的紧急号码,而且在无SIM卡情况下紧急号码是否能拨出也并无定论。常用的紧急号码中: 911是北美大陆通用报警电话。 08和112是全世界GSM通信网络共同的标准紧急电话 110,119,120,122是国内大陆的匪、火、急救、交通紧急号码 11... 阅读全文
posted @ 2013-02-22 16:12 __Shadow 阅读(4419) 评论(3) 推荐(0) 编辑
摘要:Android架构纵横谈之——软件自愈能力 来自:http://www.uml.org.cn/mobiledev/201209255.asp 笔者决定,从今天开始,连载Android架构纵横谈系列。之所以叫纵横谈而不是叫别的题目,是因为整个系列是横着竖着乱弹琴,可以说是阴阳不分,黑白颠倒,望湘园里望湘园。我不谈任何一个小的点,比如启动过程、某个HAL移植、一个具体的native service或者Java service,我要谈的是横穿在其中的设计思想,因此,我谈的任何一个方面,都有可能涉及到Android从内核到... 阅读全文
posted @ 2013-01-25 09:45 __Shadow 阅读(2480) 评论(1) 推荐(1) 编辑
摘要:一直发现手机上的手电筒是个很实用的功能,在网上下载了好几个手电筒,但是存在一个十分让人老火的问题:广告!如此一个小小东西TMD的还加个广告,宁愿不用! 把公司自己的手电筒APK pull出来,也在三星手上无法安装,反编译出来也没用,实现方式还有些不一样。这个不一样还真是影响了程序的效果! 就一个打开闪光灯而已很简单,自己做一个不久OK了。 下面代码利用了camera的东东,实现出来有一个问题,在开闪光灯的时候, 会发现:点击按钮之后非常明显滞后才开启闪光灯,这个滞后应该是启动camera造成; 相比公司自己的Flashlight APK,反应速度很快,没有明显滞后的感觉; 原因... 阅读全文
posted @ 2013-01-12 16:26 __Shadow 阅读(1051) 评论(0) 推荐(0) 编辑
摘要:> 系统分区# adb shell# mountrootfs / rootfs ro 0 0tmpfs /dev tmpfs rw,mode=755 0 0devpts /dev/pts devpts rw,mode=600 0 0proc /proc proc rw 0 0sysfs /sys sysfs rw 0 0none /acct cgroup rw,cpuacct 0 0tmpfs /mnt/asec tmpfs rw,mode=755,gid=1000 0 0none /dev/cpuctl cgroup rw,cpu 0 0/dev/block/mtdblock0 /sy 阅读全文
posted @ 2012-11-28 17:05 __Shadow 阅读(19486) 评论(0) 推荐(0) 编辑
摘要:android4.0在某应用中关闭其他应用程序:例如关闭打开的闹钟程序: String pakageName = "com.android.BBKClock"; ActivityManager activityMgr; activityMgr = (ActivityManager)mContext.getSystemService( Context.ACTIVITY_SERVICE); activityMgr.forceStopPackage(packageName);在应用AndroidManifest.xml中添加权限: application标签中加上: an... 阅读全文
posted @ 2012-10-15 19:47 __Shadow 阅读(9434) 评论(0) 推荐(0) 编辑
摘要:第一部分:1. ubuntu下配置环境anroid变量:在终端执行sudo gedit /etc/profile 打开文本编辑器,在最后追加#set android environment2. 运行Eclipse,还需要配置JAVA环境变量#set java environmentJAVA_HOME=/home/loginname/jdk目录名JRE_HOME=/home/loginname/jdk目录名/jreexport PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATHexport CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib: 阅读全文
posted @ 2012-10-10 14:53 __Shadow 阅读(8130) 评论(0) 推荐(0) 编辑
摘要:一 Socket Socket最初用在基于TCP/IP网络间进程通信中,以客户端/服务器模式进行通信。实现异步操作,共享资源集中处理,提高客户端响应能力。Tcp通信基本流程: 服务器端 客户端 1.创建socket1.创建socket 2.bind() 3.listen() 4.accecp() ----等待客户端连接---- 2.connect() 5.读数据(recv)3.写数据(send) 6.写数据(send)4.读数据(recv) 7.关闭socket(closesocket()) 5.关... 阅读全文
posted @ 2012-10-09 16:55 __Shadow 阅读(61477) 评论(0) 推荐(5) 编辑
摘要:Zygote 接收客户端创建进程的请求,使用JNI调用linux fork函数创建进程。Zygote是在Init进程中作为Service被启动的。Zygote进程的主体是:ZygoteInit。 Zygote进程的启动可以参考前篇:Android系统启动过程 http://www.cnblogs.com/bastard/archive/2012/08/28/2660389.html系统启动过程如下图: 下面主要看看Zygote是如何进行工作的。一 Zygote工作流程主函数:public static void main(String argv[]) { …… /... 阅读全文
posted @ 2012-09-03 12:13 __Shadow 阅读(11569) 评论(1) 推荐(1) 编辑
摘要:linux中fork()函数详解(原创!!实例讲解)(转载)一、fork入门知识一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己。 我们来看一个例子:[cpp]view plaincopy/**fork_test.c*version1*Createdon:20 阅读全文
posted @ 2012-08-31 10:00 __Shadow 阅读(238250) 评论(14) 推荐(39) 编辑
摘要:Android系统启动过程首先Android框架架构图:(来自网上,我觉得这张图看起来很清晰) Linux内核启动之后就到Android Init进程,进而启动Android相关的服务和应用。启动的过程如下图所示:(图片来自网上,后面有地址) 下面将从Android4.0源码中,和网络达人对此的总结中,对此过程加以学习了解和总结,以下学习过程中代码片段中均有省略不完整,请参照源码。一 Init进程的启动 init进程,它是一个由内核启动的用户级进程。内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完... 阅读全文
posted @ 2012-08-28 16:18 __Shadow 阅读(77119) 评论(11) 推荐(12) 编辑
摘要:Android APP 的运行环境 Android 是一款基于 Linux 内核,面向移动终端的操作系统。为适应其作为移动平台操作系统的特殊需要,谷歌对其做了特别的设计与优化,使得其进程调度与资源管理与其他平台的 Linux 有明显的区别。主要包含下面几个层次:Application FrameworkApplication Framework 将整个操作系统分隔成两个部分。对应用开发者而言,所有 APP 都是运行在 Application Framework 之上,而并不需要关心系统底层的情况。Application Framework 层为应用开发者提供了丰富的应用编程接口,如 Acti. 阅读全文
posted @ 2012-08-17 15:42 __Shadow 阅读(29362) 评论(0) 推荐(1) 编辑
摘要:保存一份,查阅方便:Android 2.1|-- Makefile|-- bionic (bionic C库)|-- bootable (启动引导相关代码)|-- build (存放系统编译规则及generic等基础开发包配置)|-- cts (Android兼容性测试套件标准)|-- dalvik (dalvik JAVA虚拟机)|-- development (应用... 阅读全文
posted @ 2012-07-02 15:53 __Shadow 阅读(467) 评论(0) 推荐(0) 编辑
摘要:如今社交网络异常活跃,接触到的几乎每个应用都使用有一个功能:分享。分享到各种SNS上,现今以新浪微博最火,其提供了良好的API接口等文档供开发者使用,正好称此有机会也来接触一下,说不定那天也能用得上。下面简单记录下初步使用过程中遇到的问题,以便对后来者有点作用。一授权认证 在使用新浪微博API前,还是很有必要先了解一下新浪微博授权认证过程如何。可以参考博文:http://whatandroid.blog.51cto.com/2172732/818665二 APP KEY的申请 为了使用新浪微博开放平台提供的API,你需要先注册一个应用,获得一个专属的App Key和App Secret。... 阅读全文
posted @ 2012-06-26 16:34 __Shadow 阅读(16126) 评论(0) 推荐(0) 编辑
摘要:Android中消息系统模型和Handler Looper 作为Android中大量使用的Handler,结合Thread使其具有众多的使用形式和方法,让我一时感觉这个东西有些玄乎,不明所以然,这到底是一个什么样的存在呢?通过网上资料和源码的学习,这个Handler也差不多弄清楚了,现在总结下这个学习结果。一 Handler作用和概念通过官方文档了解到Handler的大致概念是: Handler能够让你发送和处理消息,以及Runnable对象;每个Handler对象对应一个Thread和Thread的消息队列。当你创建一个Handler时,它就和Thread的消息队列绑定在一起... 阅读全文
posted @ 2012-06-08 16:15 __Shadow 阅读(14580) 评论(2) 推荐(5) 编辑
摘要:Android学习 StateMachine与State模式一 State模式意图: 允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。(Objects for States) 对象内部状态决定行为方式,对象状态改变行为方式改变;但这里为何要强调内部状态,外部状态改变也同样会影响行为方式的改变,通常外部状态的改变都会反映到内部状态上来。 Command模式是将命令请求封装成一个为对象,将不同的请求对象参数化以达到同样的调用执行不同的命令;同样State模式是将对象的状态封装成一个对象,是在不同的状态下同样的调用执行不同的操作。适用性: l 一个对象的行... 阅读全文
posted @ 2012-06-05 10:35 __Shadow 阅读(27725) 评论(3) 推荐(5) 编辑