emulator 设置
http://hi.baidu.com/cell37/blog/item/d7b1e77a8bf797e20bd18759.html
设置 rom ram
可以降低 emulator cpu 和 网速
09-07 05:17:09.016: ERROR/AndroidRuntime(388): java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@44f0bbd8
两种GC
DEBUG/dalvikvm(385): GC_FOR_MALLOC freed 3390 objects / 248680 bytes in 71ms
DEBUG/dalvikvm(385): GC_EXPLICIT freed 5 objects / 128 bytes in 106ms
adb shell dumpsys meminfo > f:/meminfo.txt
c 盘访问不了,
motodev dumpsys meminfo > f:/meminfo.txt 不行
用DDMS memory 分析太简单不如不用。查看不了内存问题。
jhat EMA
adapter leak
INSTALL_FAILED_INSUFFICIENT_STORAGE调试错误的解决
C:\Users\apple\AppData\Local\Temp
http://www.eclipse.org/mat/
debug 类
Android 内存使用hprof文件打开方法
Android 内存泄漏调试
http://kira.chen.popo.blog.163.com/blog/static/324553272011513102940843/
总之当一个生命周期较短的对象A,被一个生命周期较长的对象B保有其引用的情况下,在A的生命周期结束时,要在B中清除掉对A的引用。
优化启动的性能,直接实现,模拟实现。对于用户来说只是个表象,总是可以用其他方法模拟,或者从界面上优化实现。Activity 的背景。所以换个思路模拟一下。
先去除单名字冲突当前配置的,然后按照优先级配置选择,
如果有满足优先配置的,再去除不满足次级配置的,如果没有的,再选择满足次级配置的。直到只剩下一个为止。
假如是dpi ,可以选择最接近的而不会去除。
所以 现在 hdpi 没有,还可以找mdpi 的。
斗地主 不稳定,网络处理不适当,界面不友好。对延迟事件处理。
硬键盘中文输入,只有下面的条。输入法支持硬键盘。
http://winuxxan.blog.51cto.com/2779763/522810
http://www.blogjava.net/zhip/archive/2011/02/14/344258.html
软键盘的状态 6 种 undefine ,unchange always hide visible 。why display
adjust Unspecified ,resize pan (平移模式,不影响edit 遮挡,否则往上平移)
什么时候全覆盖,还是resize 。
Traversal 遍历
alwaysRetainTaskState="true" 没有效果,
newTask 也没有效果 why
screenless DispatcherActivity
TabActivity tabwidget
Activity 集成
tab 没有封装好,暴露的太多,优点就是比较灵活。
需要定义 tabhost ,tab widget 。应该自动加。
KeyguardManager keyguardManager = (KeyguardManager)getSystemService(Activity.KEYGUARD_SERVICE);
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE);
lock.disableKeyguard();
锁屏 ,黑屏。
直接关闭屏幕 power manager
onKeyLongPress
理论上都可以拦截 除了 Home ,power 。 电话键可以拦截
QuickContactBadge badge 徽章
AdapterViewFlipper
home 键处理 不允许拦截
http://stackoverflow.com/questions/3898876/how-to-disable-home-key
换成480 的屏幕,因为用 dp ,再缩放反而错误。
GestureOverlayView 一种用于手势输入的透明覆盖层,可覆盖在其他控件的上方,也可包含其他控件
http://blog.myspace.cn/e/408632816.htm
它用的自定义手势库,可以画出来
自己手机 驱动安装
先要安装,或者从网上下载,或者豌豆荚之类自己安装。自己安装直接目录里面setup ,不是缺省的同步程序。
手机连接模式,调试模式往往没有,有充电,加载,同步 等等。
an ordinary application itself.
Menu.FIRST + 1;定义使用范围
setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL);
Home activity
startActivity(Intent.createChooser(pickWallpaper, getString(R.string.menu_wallpaper)));
调用 wallpaper 。
Home 可定制 ,是一个单独程序,我们定制自己的可扩展桌面,launcher也可以定制,注意所有的 catogory 。都可以。
输入输出setWallpaper(stream);
http://blog.csdn.net/luoshengyang/article/details/6557518
在VMware 上面 install ubuntu ,然后 下载android 源代码。编译为 三个 image 文件。system ,ramdisk ,userdata 。然后install 到 emulator 。
是否可以install 到 真机,刷rom ?
http://blog.csdn.net/luoshengyang/article/details/6567257
?Android的硬件抽象层,简单来说,就是对Linux内核驱动程序的封装,向上提供接口,屏蔽低层的实现细节。也就是说,把对硬件的支持分成了两层,一层放在用户空间(User Space),一层放在内核空间(Kernel Space),其中,硬件抽象层运行在用户空间,而
Linux内核驱动程序运行在内核空间。为什么要这样安排呢?把硬件抽象层和内核驱动整合在一起放在内核空间不可行吗?从技术实现的角度来看,是可以的,然而从商业的角度来看,把对硬件的支持逻辑都放在内核空间,可能会损害厂家的利益。我们知道,Linux内核
源代码版权遵循GNU License,而Android源代码版权遵循Apache License,前者在发布产品时,必须公布源代码,而后者无须发布源代码。如果把对硬件支持的所有代码都放在Linux驱动层,那就意味着发布时要公开驱动程序的源代码,而公开源代码就意味着把硬件的相
关参数和实现都公开了,在手机市场竞争激烈的今天,这对厂家来说,损害是非常大的。因此,Android才会想到把对硬件的支持分成硬件抽象层和内核驱动层,内核驱动层只提供简单的访问硬件逻辑,例如读写硬件寄存器的通道,至于从硬件中读到了什么值或者写了什
么值到硬件中的逻辑,都放在硬件抽象层中去了,这样就可以把商业秘密隐藏起来了。也正是由于这个分层的原因,Android被踢出了Linux内核主线代码树中。大家想想,Android放在内核空间的驱动程序对硬件的支持是不完整的,把Linux内核移植到别的机器上去时,
由于缺乏硬件抽象层的支持,硬件就完全不能用了,这也是为什么说Android是开放系统而不是开源系统的原因。
驱动,设备文件
android 目录 总2G ,platform 1 G ,每个platform system.img 100 M
Android进程间通信(IPC)机制Binder简要介绍和学习计划
平板 WXgA 1280*800 XGA 1024*768
刷机
recovery ,fastboot 。
线刷,卡刷。 提权优先?
http://android.sj.91.com/content/2010-01-08/20100108001813905,1.shtml
http://android.sj.91.com/content/2009-07-28/20090728002305422.shtml
android 3 。
无键 ,状态条在下面。
SimpleCursorAdapter 分了几层。类似simple adapter 。
有个setCursorToStringConverter ,可以 用 url link 去处理
如果可以重新 加载, 用文件保存状态容易一点。多文件。
http://dohkoos.name/how-to-obtain-the-android-mobile-phone-model.html
如何获取Android手机的型号
android.os.Build
反馈的时候,可以自动取系统的型号和版本 ,不用用户填。
用户可能对某张图片有兴趣想看大图,但是用户又不愿意每次都去改设置里面大小图的缺省设置,我建议我们在浏览和上传的时候,还可以让用户选择在这次用大图或者小图。
网上有文章介绍 error report 功能 ,可以在系统崩溃的时候,把错误信息发到系统的网站,这样就可以自动收集崩溃错误了,大部分用户系统崩溃的时候,不原意填反馈信息的,我们也可以加上这个功能。
Setting
get setting value
value = android.provider.Settings.System.getInt(activity.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS);
go to set screen
Intent intent = new Intent(Settings.ACTION_SYNC_SETTINGS);
startActivity(intent);
无法改变 加一个setting 在 setting 。
http://stackoverflow.com/questions/2902564/adding-settings-to-settings
android.content.res.Configuratio
错误 堆栈
07-18 15:33:55.409: ERROR/AndroidRuntime(4597): android.os.Looper.loop(Looper.java:123)
07-18 15:33:55.409: ERROR/AndroidRuntime(4597): at android.app.ActivityThread.main(ActivityThread.java:4363)
07-18 15:33:55.409: ERROR/AndroidRuntime(4597): at java.lang.reflect.Method.invokeNative(Native Method)
07-18 15:33:55.409: ERROR/AndroidRuntime(4597): at java.lang.reflect.Method.invoke(Method.java:521)
07-18 15:33:55.409: ERROR/AndroidRuntime(4597): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
07-18 15:33:55.409: ERROR/AndroidRuntime(4597): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
http://blog.3gstdy.com/archives/545
用Android程序打开和关闭输入法
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
boolean isOpen=imm.isActive();
测试
2G 网络 ,set wanet 。
没有硬键,没有办法回退dialog ,dialog 要加close 。
发生错误的时候,应该也要把progress 关闭。 错误控制。
ListView 绘制 ,position 刷新问题,图片切换 。
大家都知道这个ROM是最速度最快的,但是可用空间很小,我发现在DAF工具目录下的flash.cfg中,有一行cache ya 40M,把他删掉以后,重新刷机,可用空间便从98M变成了138M!速度也无减慢!
adjustPan 解决输入框被输入法挡住问题,显性定义Activity adjustPan 模式(界面上移以保证输入框不被输入法挡住)
Listview 滚动速度
Scrool setfriction
listView1.smoothScrollByOffset(int viewPosition).
输入法,定制setting
smooth add in api 8 ,but can not found ? 。It is in abslistView 。
PositionScroller FastScroller
Fling 要的是速度。
Scrool 是距离 。