摘要:
第三天,google说,伊甸园(linux世界)要被隔离,于是便创造了亚当(Adm)与夏娃(Eve),称它为zygote和system_server --xxx 第二天,init跑完了,它对于android系统,最重要的,就是启动了zygote和system-server,谁是Adam谁是Eve? 从分析init.rc来看service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server --start-system-server只是个参数。 分析源码 啊,原来夏娃(zygote) 阅读全文
2011年10月22日
2011年10月14日
摘要:
第二天,google说,荒芜要被开垦,系统便运作了,它是linux。 --xxx 荒蛮大地就要变得肥沃,linux已经运行起来了。。。。 linux就不多讲了,这里只讲讲被google大刀阔斧改了内核后的linux。 第一天最后,内核init已经干完了自己的事,把控制权交给了第一个用户级进程,也叫做init。 想知道这个init干了什么事,我们只能看看源码,不贴代码,这里只说说它干了什么。 (system/core/init/init.c -->main)一、清空umask 也就是设置缺省权限,这里设置为0,umask为0000的话,就相当于chmod中的0777,经常使用linux对于 阅读全文
2011年10月1日
摘要:
第一天,google说,要有电,于是电流涌向了电路板,涌入了arm处理器,于是arm运作了。 --xxx 嵌入式世界诞生之出,世界是荒蛮的,电流涌向各个芯片,各种处理器等待着唤醒。 arm觉醒了,开始审视自己。。。。 ---------------下面内容可能有误,请指正------------------- 人们叫他Bootloader,和PC中的BIOS是哥们,负责芯片各个端口的初始化,以及cpu时钟等等设置。 在手机中,bootloader一般就是刷机人口中的底包(并不全是,第二天会说),以摩托为例,买到手机后发烧友们总会首先刷底包,什么北欧、港行、巴西什么的底包。首先下载下来100~. 阅读全文
2011年9月29日
摘要:
某些安全管理类具有程序锁功能,大致功能是这样的:安全管理程序列出系统中的所有应用,用户选定一些想锁定的程序,并设置好密码,这样以后,再运行那些程序会跳转到一个权限页面,要求输入密码访问,或者不访问并推出。 如何实现呢? 第一个想法就是写一个service监测activity 栈,如果栈顶有更改,则判断其是否为受保护的程序,是,就intent转向自己定义的认证授权activity;否,则什么都不做。找来找去,sdk没有提供某个回调方法或事件、广播之类的api,只能自己一直while中检测。 于是寻找第二种方法,在源码中找所有service和aidl,也没发现callback或者broa... 阅读全文
2011年9月13日
摘要:
要做一个im软件,消息收发的即时性就是灵魂了,我在atomQQ中,使用了service来进行对服务器的消息轮询(-_-!! 除了service还能用啥呢。。)这里首先说明webqq3的消息轮询机制通过抓包发现,webqq接受各种即时消息是通过这个posthttp://d.web2.qq.com/channel/poll2这个地址实现的POST http://d.web2.qq.com/channel/poll2这个提交的超时时间要长,一定要长,服务器是这样给你推送消息的:* 客户端首先post上面那个地址,并在一个长时间内等待服务器返回* 服务器检查是否有没有推送出去的消息,如果没有,而且打到 阅读全文
摘要:
在list当中,如果自定义item中的内容是从网络获取的,并且要求较高的实时性,那么就需要异步加载,这样,只需要显示在屏幕上的item以及即将被显示的item去获取网络资源,不至于对网络访问占用很大的带宽,在移动应用中尤其要这么做。下面是我实现item加载头像、昵称|备注名称、个性签名的异步加载方法。首先,list是与adapter适配器绑定。ListadAdapter与ExpanedListAdapter当中有几个必须实现的方法:public Object getChild(int group, int child)public long getChildId(int group, int 阅读全文
摘要:
首先看效果这里,为了方便逻辑与ui分开,在好友列表与群列表使用Activity,而不是view。最后,通过 Window 的 .getDecorView();方法获得view,具体代码如下:onCreate(){........//好友列表意图 Intent ittFriends=new Intent(this,FriendListActivity.class); //这里就获取到了viewViewGroup friendsView=(ViewGroup) (m_ActivityManager.startActivity("", ittFriends)).getDecorV 阅读全文
2011年8月30日
摘要:
在退伍之后本来出于兴趣,研究一下很云很云的webqq,分析了两个星期协议,终于搞出来,再打算提高提高andrdio水平,就想做出来这个东西,期间经历了一次webqq2协议向webqq3协议的升级,真让我头疼,最终还是搞定了,现在完成70%了,把之前做过的事记录一下。先看看界面:图标:这个戴红领巾的企鹅就是登陆界面,放个q娘的logo吧,由于服务器的原因,有可能会输入验证码。 主界面,qq好友与群聊天界面:后面会单独写出各个部分具体的细节实现atomQQ 笔记 之 好友列表与群列表atomQQ 笔记 之 列表元素的异步加载atomQQ 笔记 之 聊天消息、状态消息等各种消息的轮询 阅读全文
2011年7月23日
摘要:
腾讯webqq的登录时,只需向服务器提交1次密码和验证码,之后服务器会返回两个会话id,就像令牌一样,每次ajax向服务器拉取信息时,都会携带这两个令牌,直至用户注销登录或意外退出。上次曾把密码与验证码混合MD5加密的js脚本提取出来,这里再贴一下。md5.jsvar chrsz=8;var mode=32;var hexcase=1;function preprocess(A){ var B=""; B+=A.verifycode.value; B=B.toUpperCase(); A.p.value=md5(md5_3(A.p.value)+B); return tru 阅读全文
2011年7月13日
摘要:
Layout--布局常用的的就是线性布局:<?xml version="1.0" encoding="utf-8"?><!--这是个线性布局--><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <!--这个属性规定它是纵向方式排列控件--> android:orientation="vertical" <!--前面加了layout_的属性,就是相对于父控件的属性,这里是填 阅读全文