摘要: 开机SystemServer到ActivityManagerService启动过程 一 从Systemserver到AMS zygote-> systemserver:java入层口: 接下来继续看SystemServer run函数执行过程: 以上6个步骤是SystemServer中关于AMS的调 阅读全文
posted @ 2016-08-14 22:05 __Shadow 阅读(7938) 评论(0) 推荐(2) 编辑
摘要: 原文地址:http://www.apkbus.com/android-54653-1-1.html展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告走过的路,回忆起来是那么曲折,把自己的一些心得体会分享给程序员兄弟姐妹们,虽然时代在变化,但是很可能你也会走我已经做过的10年的路程,有些心得体会你可以借鉴一下,觉得说得有道理的你就接纳,觉得说得没道理的,你就抛弃,以下是我发自内心的,给大家的忠告,特别是针对那些小弟弟妹妹们。01. 自己的户口档案、养老保险、医疗保险、住房公积金一定要保管好。由于程序员行业每年跳槽一次,我不隐瞒大家,我至少换过5个以上的单位,这期间跳来跳 阅读全文
posted @ 2013-01-28 14:30 __Shadow 阅读(2041) 评论(2) 推荐(5) 编辑
摘要: Android中消息系统模型和Handler Looper 作为Android中大量使用的Handler,结合Thread使其具有众多的使用形式和方法,让我一时感觉这个东西有些玄乎,不明所以然,这到底是一个什么样的存在呢?通过网上资料和源码的学习,这个Handler也差不多弄清楚了,现在总结下这个学习结果。一 Handler作用和概念通过官方文档了解到Handler的大致概念是: Handler能够让你发送和处理消息,以及Runnable对象;每个Handler对象对应一个Thread和Thread的消息队列。当你创建一个Handler时,它就和Thread的消息队列绑定在一起... 阅读全文
posted @ 2012-06-08 16:15 __Shadow 阅读(14598) 评论(2) 推荐(5) 编辑
摘要: Android中JNI的使用方法 首先看一下Android平台的框架图:(网上盗用) 可以看到Android上层的Application和ApplicationFramework都是使用Java编写,底层包括系统和使用众多的LIiraries都是C/C++编写的。 所以上层Java要调用底层的C/C++函数库必须通过Java的JNI来实现。下面将学习Android是如何通过Jni来实现Java对C/C++函数的调用。以HelloWorld程序为例:第一步:使用Java编写HelloWorld 的Android应用程序:package com.lucyfyr;import andro... 阅读全文
posted @ 2012-05-19 15:24 __Shadow 阅读(158882) 评论(11) 推荐(9) 编辑
摘要: 邀请 The Invitation 文/加拿大女诗人 Oriah我不在乎你如何谋生,只想知道你有何渴望,是否敢追逐心中梦想。我不关心你年方几何,只想知道面对爱情和梦想,你是否会无所保留,像个傻瓜般投入得透彻。生命的背叛,在你心口上划开缺口,热情逐日消减,恐惧笼罩心田,我想知道,你能否和伤痛共处,用不着掩饰,或刻意忘却,更别把它封堵。我想知道,你能否和快乐共舞,翩翩起舞,无拘无束,从嘴唇,到指尖,到脚趾头都把热情倾注。这一刻,忘记谨小慎微,现实残酷,忘记生命的束缚。我想知道,你能否从没天平淡的点滴中发现美丽,能否葱生命迹象中寻找到自己生命的意义。我想知道,你能否坦然面对失败,———... 阅读全文
posted @ 2012-05-09 20:59 __Shadow 阅读(1994) 评论(0) 推荐(0) 编辑
摘要: 写代码如坐禅:你是哪一类程序员 原文来自:Are You a Zen Coder or Distraction-Junkie? 当编译占用你时间时你会怎么做。不只是编译,即使是在等待任何短暂的计算机操作结束,这段时间你会干些什么? 和你的工作日休息比起来这点时间是微不足道的,但是总的来说它还是能对你的生产率和幸福感感带来巨大帮助的。 顺便说一下,这篇文章内容不是只针对开发者和程序的。它对任何使用电脑的聪明人都有效。后面还会附上图片。现在让我们开始吧! 为什么要写这篇文章 我最近开始在我的工作习惯里使用某种时间管理技巧来提升我的生产率,减小压力,并帮助我的身体和大脑得到休息。我基本上... 阅读全文
posted @ 2012-02-29 16:24 __Shadow 阅读(611) 评论(0) 推荐(0) 编辑
摘要: 软件设计方法(转载) 为在平台上解决一个问题,改来改去的跟了很久最后基本发现即可以实现的时候,移植到项目上发现有一个平台自带的无法解决的问题。也是搞了很久都没有解决问题,甚至不清楚问题到底出在哪里,无法继续下去了。 最后还是我同事帮忙一步步分析找到了问题的所在,系统就不支持这种方式。在解决这个问题的过程,我一直请教一个同事虽然他总是摆出一种不屑别人的逻辑和代码的样子。 但是我不得不承认,他在软件开发过程中给我感觉是非常棒的,他是非常讲求“效率,理论,方法,原理”;而他总是在实现一个功能或者解决问题时,要经过理论分析,推导,简化,逐步达到目的的方式,什么样的方法导致什么样的结果,要清清... 阅读全文
posted @ 2011-11-30 20:38 __Shadow 阅读(10833) 评论(0) 推荐(1) 编辑
摘要: 一 windows中如何在命令行启动启动程序 比如启动文本编辑器:直接在命令行输入notepad即可如果想让其他安装程序也能如此启动,需要做: 1 将该程序安装目录加入到环境变量中 F:\Beyond Compare加入到Path环境变量中 每一个程序都需要这样操作非常的麻烦。 2 创建一个目录:F:\Link\ 将应用程序的快捷方式添加到此目录下: 可以任意命名称 然后将此目录添加环境变量Path中 ;F:\Link 可以使用win+R键,输入word.lnk即可启动 或者在命令行cmd中输入word.lnk启动 .lnk为每个应用程序快捷方式后缀二 PowerShell 启动应用程序 Po 阅读全文
posted @ 2013-05-16 17:53 __Shadow 阅读(7750) 评论(0) 推荐(0) 编辑
摘要: 1 PLMN概念PLMN: PLMN(Public Land Mobile Network,公共陆地移动网络)该网路必须与公众交换电话网(PSTN)互连,形成整个地区或国家规模的通信网。PLMN = MCC + MNC: 中国移动的PLMN为46000,46002,46007 中国联通的PLMN为46001,46006 中国电信的PLMN 46003,46005PLMN的分类 : 对于一个特定的终端来说,通常需要维护几种不同类型的PLMN列表,每个列表中会有多个PLMN。 RPLMN(Registered PLMN 已登记PLMN): 已登记PLMN。是终端在上次关机或脱网前... 阅读全文
posted @ 2013-05-09 11:24 __Shadow 阅读(32862) 评论(0) 推荐(0) 编辑
摘要: 现有的手机中使用的卡SIM, USIM,UIM等统称为:UICC——Universal Integrated Circuit Card;这些卡之间数据结构是有些区别的,先来看看SIM卡的文件结构。一 Sim文件系统数据结构1 sim卡文件系统 SIM card file system structure: 2 文件结构 MF:The root level of the file system is known as the Master file. DF:Directories are known as Dedicated files and are of a fixed si... 阅读全文
posted @ 2013-05-07 19:16 __Shadow 阅读(6380) 评论(0) 推荐(0) 编辑
摘要: 1 Android Log最近遇到一些抓log 的事情,很多来自网上达人的分享,加在一起总结一下:log文件分为实时打印的,还有状态信息的两种 实时打印的主要有:logcat main,logcat radio,logcat events,tcpdump, QXDM Log 状态信息的有:adb shell dmesg,adb shell dumpstate,adb shell dumpsys,adb bugreport实时log: adb logcat -b events -v time 打印系统事件的日志,比如触屏事件 tcpdump 是很有用的,对于TCP/IP协议相关的都可以使用这.. 阅读全文
posted @ 2013-05-03 16:54 __Shadow 阅读(11197) 评论(0) 推荐(0) 编辑
摘要: 在底层代码中看到这样一条语句: system("/system/bin/sh -c \"am broadcast -a android.intent.action.AT_AIRPLANE_MODE --ez state true\"");system 这是干什么的啊?? 经google原来system是系统调用,执行一个系统命令。 这里system加上其参数的意思: 调用system,通过shell,执行可执行程序或者脚本am, 发送broadcast Action为:android.intent.action.AT_AIRPLANE_MODE 广播参数 阅读全文
posted @ 2013-05-03 10:40 __Shadow 阅读(3954) 评论(0) 推荐(0) 编辑
摘要: 1 RIL_J与RIL_C通信 上层通常要和RILD通信,是通过Socket,在RIL_JAVA层实现;沿着这样代码流程进行Framework——native: Phone——RIL_JAVA——>RIL_CPP那么可不可以直接和RILD(RIL_CPP)进行通信呢? 肯定是可以的,因为通信使用的rildsocket,只要通过这个socket就可以和RILD进行通信 ;但实际中可靠的使用是不可行的,因为RILD在创建的时候, 设计初始化已经决定了RILD同时所支持的客户端的数量: 单卡仅支持一个客户端; 双卡实现方式代码提供了两种方式: 1)双卡两个RIL客户端对应一个RILD服务端.. 阅读全文
posted @ 2013-05-02 17:42 __Shadow 阅读(5742) 评论(4) 推荐(0) 编辑
摘要: 一 DataConnectionTracker DataConnectionTracker:控制手机APN加载,数据连接; 包括:APN的创建,开机启动断开连接时,Radio状态改变时,Apn变化时,语音和数据业务切换时, 连接失败及自动重连时,漫游打开关闭时……这些情况下数据连接的处理; 对于CDMA和GSM两种网络通信技术,处理数据连接存在着一些差异,基本流程一致,下面看看CdmaDataConnectionTracker工作流程;二 APN加载1 APN概念 APN(Access Point Name),即“接入点名称”,用来标识GPRS的业务种类,目前分为两大类:CMWAP... 阅读全文
posted @ 2013-04-20 09:37 __Shadow 阅读(3218) 评论(0) 推荐(0) 编辑
摘要: 一 ServiceStateTracker 作为Phone重要的Tracker:CallTracker,DataConnectionTracker,ServiceStateTrackerServiceStateTracker:处理和维护手机各种状态 小区位置CellLocation,网络状态ServiceState,信号强度SignalStrength, 业务限制状态RestrictedState,用户识别卡信息IccRecords……看一下ServiceStateTracker类结构图: 对于CDMA和GSM两种网络通信技术,存在着一些差异,下面看看CDMAServiceSta... 阅读全文
posted @ 2013-04-20 09:18 __Shadow 阅读(4677) 评论(0) 推荐(0) 编辑
摘要: 1.权限 每个程序在安装时都有建立一个系统ID,如app_15,用以保护数据不被其它应用获取。Android根据不同的用户和组,分配不同权限,比如访问SD卡,访问网络等等。底层映射为Linux权限。2. 应用申请权限 1)应用开发者通过AndroidManifest.xml中<uses-permission>指定对应权限,再映射到底层的用户和组,默认情况下不设定特殊的权限。AndroidManifest加入权限后系统安装程序时会在图形界面中提示权限 2) 如果是缺少某个权限(程序中使用的某种权限而在AndroidManifest.xml中并未声名),程序运行时会在logcat中打印 阅读全文
posted @ 2013-04-10 11:17 __Shadow 阅读(12281) 评论(0) 推荐(1) 编辑