作者: liubin 日期: 2011年03月04日  分类:Android  Comments Off 
howto do git replace
代码提交后,如果还要再改一次,如何修改? 首先在本地修改代码 再执行如下命令: git add ./ git commit –amend repo upload ./ –replace
339 days前 / 0 次浏览阅读全文
作者: liubin 日期: 2011年02月19日  分类:Android  Comments Off 
android的收彩信通知的过程解析
这里对froyo(非标准)里mms模块收彩信的函数调用关系进行一点解说。这里只说的是收到彩信,但是还没有下载(设为手工下载) 首先,mms是通过WAPPUSH实现的,具体在com.android.internal.telephony包里的WapPushOverSms类。 这个类里除了构造函数,另一个public的就是dispatchWapPdu()了 仔细查看下,就会找到dispatchWapPdu_MMS()这个函数 private void dispatchWapPdu_MMS(byte[] pdu, int transactionId, int pduType,                                     int he...
352 days前 / 0 次浏览阅读全文
作者: liubin 日期: 2011年02月14日  分类:Android  Comments Off 
XXX烧鸡步骤
1。关机,拔电池 2。按住相机按钮的同时按电源键 3。sudo ./fastboot devices 确认设备链接成功 4。sudo ./fastboot erase userdata 删除用户数据 5。sudo ./fastboot flash boot boot_xxx.img 烧写boot信息 6。sudo ./fastboot flast system system_xxx.img 烧写 system镜像
357 days前 / 0 次浏览阅读全文
作者: liubin 日期: 2011年02月10日  分类:Android  Comments Off 
如何让自己的应用在应用程序列表里排在前面
普通的android的home程序里的应用一览,应该是按照字母顺序升续排列的,不光是android,其它平台可能也类似,很多东西都有按字母排列这一功能,这也是angry bird起名的由来吧,a怎么排都靠前。那么我们自己的程序必须要遵守这个规则吗?如果用汉字岂不是要排到很后面去了? 答案是有小窍门,可以把你的“汉字”的应用名排到前面去,那就是修改app_name的值 先看看如何做吧,以应用汇为例 在values/string.xml里有如下代码 <resources>   <string name="app_name">\u0020掌上应用汇</string>   <string name="l...
361 days前 / 0 次浏览阅读全文
作者: liubin 日期: 2011年01月31日  分类:Android, 技术  Comments Off 
用Handler也能同步操作
用Handler多数是为了异步操作,不阻塞UI线程的操作,可以防止ANR等。 今天看com.android.internal.telephony.gsm.SimSmsInterfaceManager的实现发现如下操作: Handler mHandler = new Handler() {         @Override         public void handleMessage(Message msg) {             switch (msg.what) {                 case EVENT_UPDATE_DONE:                     synchroni...
371 days前 / 0 次浏览阅读全文
作者: liubin 日期: 2011年01月13日  分类:Android  Comments Off 
从android的framebuffer里取图
在网上看到的 只需要如下命令即可: $ adb shell # cat /dev/graphics/fb0 > /sdcard/frame.raw 然后用FFMPEG转换为png $ IMAGE_RES=320×480 $ RAW_IMAGE=frame.raw $ OUT_IMAGE=frame-%d.png $ #Download the raw data $ adb pull /sdcard/$RAW_IMAGE . $ ffmpeg -vcodec rawvideo -f rawvideo -pix_fmt rgb565 -s $IMAGE_RES \ -i $RAW_IMAGE -f image2 -vcodec png $OUT_IMAGE 可以参考http://my.opera.com/otaku_2r/blog/grab-a-frame-in-android-frame-buffer
389 days前 / 0 次浏览阅读全文
作者: liubin 日期: 2010年12月28日  分类:Android  Comments Off 
线程问题引起的内存泄露
最近解决的一个内存泄露,竟然是由于线程问题引起的 看看下面代码,如何? new Thread(new Runnable() {             public void run() {                 MessagingNotification.updateSendFailedNotificationForThread(ComposeMessageActivity.this, threadId);             }         }).run(); 有什么问题吗? 对,这段代码生成了一个thread的对象,竟然调用了run方法,这引起了内存泄露。 必须改为start才行。 而run方法,只是...
405 days前 / 0 次浏览阅读全文
作者: liubin 日期: 2010年12月23日  分类:Android  Comments Off 
activity的启动方式(launch mode)
在android里,有4种activity的启动模式,分别为: “standard” (默认) “singleTop” “singleTask” “singleInstance” 它们主要有如下不同: 1. 如何决定所属task “standard”和”singleTop”的activity的目标task,和收到的Intent的发送者在同一个task内,除非intent包括参数FLAG_ACTIVITY_NEW_TASK。 如果提供了FLAG_ACTIVITY_NEW_TASK参数,会启动到别的task里。 “singleTask”和”singleInstance”总是把activity作为一个task的根元素,他们不会被启动到一个其他task里。...
410 days前 / 0 次浏览阅读全文
作者: liubin 日期: 2010年12月20日  分类:Android  Comments Off 
Android内存泄漏问题的排查
稍好效果,请点击这里下载PDF版本 首先先检查下你有没有犯这些错误(内存泄露的主要原因): 生命周期过长的对象(static),尤其是集合对象(List/Map等)作为cache等使用,如果没有将某个对象主动的从中清除的话,这个集合就会占用越来越多的内存,可以用WeakReference,如WeakHashMap,使得它持有的对象不增加对象的引用数。 Scope定义不对,方法的局部变量定义成类的变量,类的静态变量等。尽量使得变量作用域别太大。 异常时没有加finally{}来释放某些资源,比如Cursor。 Listener没有显式remove;内部类持有外部对象的隐式引用,不论是什么,如果有add方法,一...
413 days前 / 0 次浏览阅读全文
作者: liubin 日期: 2010年12月17日  分类:Android  Comments Off 
android内存泄露(memory leak)之进程HProf (Heap Profile) 信息
因为性能问题(主要是内存泄漏),需要采集程序堆栈等信息,代码如下,只是简单说几个地方: 1.默认的HProf (Heap Profile) 放在/data/misc,需要改写权限为777 2.kill -10 pid 即可生成.prof文件 3.需要用android sdk的hprof-conf将android的hprof转化为标准的(能在MAT中用的) #!/bin/sh   # author liubin (http://liubin.nanshapo.com) # get_hprof.sh 2010/12/17   ######################################################## ###########                              #...
416 days前 / 0 次浏览阅读全文