android项目实践
“一键清理”是一个桌面图标,点击图标后,显示一个视图,进行清理动画,之后显示清理了几个进程,释放了多少M内存,点击“设置过滤名单”启动另外一个Activity编辑过滤名单
“一键清理”是一个桌面图标,点击图标后,显示一个视图,进行清理动画,之后显示清理了几个进程,释放了多少M内存,点击“设置过滤名单”启动另外一个Activity编辑过滤名单
android 技术总结
介绍如何使用源码中的 (testkey:普通APK,默认情况下使用,platform:该APK完成一些系统的核心功能,经过对系统中存在的文件夹的访问测试,这种方式编译出来的APK所在进程的UID为system,shared:该APK需要和home/contacts进程共享数据,media:该APK是media/download系统中的一环。)4种密钥公钥进行签名。
介绍什么是MVC以及MVC在SDK中的使用,扩展了ListView,adapter的简单使用。
介绍什么是反射机制,着重讲述反射机制在android中的具体应用:1.通过反射技术可以访问到其他包名下数据方法等,这些为一些APK换皮肤提供了方便 2. 访问android 隐藏的API (不消失的Toast)3. 修改某些“不可改” 的系统资源(快速滑块)。
以班级学生简单实体,介绍SQLite的增、删、查、改等简单使用,SQLite的详细语法点击这里。
对于触摸(Touch)触发的事件,在Android中,事件主要包括点按(onClick)、长按(onLongClick)、拖拽(onDrag)、滑动(onScroll)等,点按又包括单击和双击,另外还包括单指操作和多指操作。其中Touch的第一个状态是 ACTION_DOWN, 表示按下了屏幕。之后,touch将会有后续事件,比如移动、抬起等,一个Action_DOWN, n个ACTION_MOVE, 1个ACTION_UP,就构成了Android中众多的事件。文章中做出了详细分析。
打开拨号,短信,设置,电量信息,壁纸,图库等系统程序。
详细介绍standard、singleTop、singleTask、singleInstance4中LauncherMode的区别和用法
大部分2D使用的api都在android.graphics和android.graphics.drawable包中。他们提供了图形处理相关的: Canvas、ColorFilter、Point(点)和RetcF(矩形)等,还有一些动画相关的:AnimationDrawable、 BitmapDrawable和TransitionDrawable等,文章中都有详细说明。
用代码说明子线程与主线程的区别。
使用Handle、Thread、TimeTask、AlarmManager来进行任务延时。
安装好应用后需要有一个Home应用程序来负责把它们在桌面上展示出来,在Android系统中,这个默认的Home应用程序就是Launcher了,本文将详细分析Launcher应用程序的启动过程。
迄今为止是我看到最好的一片关于生命周期的文章了。
使用这个漏洞可以进行屏幕劫持,增加系统负荷,窃密等(demo)
文件读写操作的类,可以留做工具。
3种换皮肤的思路,可以适用市面上大多数产品的换皮肤工作。
Android系统为我们提供了很多服务管理的类,包括ActivityManager、PowerManager(电源管理)、AudioManager(音频管理)
等。除此之外,还提供了一个PackageManger管理类,它的主要职责是管理应用程序包。 通过它,我们就可以获取应用程序信息。
17.SharedPreferences之你不知道的事一、SharedPreferences将数据文件保存在指定路径上
二、SharedPreferences保存图片
三、SharedPreferences保存对象
Android SDK只支持采用SAX技术读取XML,SAX采用顺序读取的方式来处理XML文档。这就要求在每读取XML文档的某个节点时会触发相应的事件来处理这个节点。文章基于一个实例讲述SAX的使用。
JSON是一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性,从而可以在不同平台间进行数据交换,JSON可以将Java对象转成json格式的字符串,可以将json字符串转换成Java对象。比XML更轻量级,Json使用起来比较轻便和简单。JSON数据格式,在Android中被广泛运用于客户端和服务器通信,在网络数据传输与解析时非常方便。
一些可以复用的方法集合
总结:
如果时间自动同步选项未勾选,直接返回;
如果NITZ已同步且上次NITZ同步未超过24小时,则设置定时器24小时后再触发同步,即广播NetworkTimeUpdateService.ACTION_POLL;
如果NTP上次成功同步超过24小时或用户勾选自动同步选项,则进行下面的NTP同步,否则同上设置定时器24小时后再触发同步;
如果上次NTP成功同步超过24小时,则发起同步mTime.forceRefresh();
如果同步成功,获取此刻NTP时间ntp=mTime.currentTimeMillis();
如果同步时间与当前本机时间误差超过指定值阀值,则把ntp设置为本机时间SystemClock.setCurrentTimeMillis(ntp)
android 与UI有关
一个上下左右都可以滑动的自定义ScrollView。
聊天软件中表情发送功能,使用SpannableString+ImageSpan可以很容易实现、重写ondraw方法、在xml中配置....
介绍ListView的常见用法,适合初学者。
介绍android:layout_weight、android:padding和android:layout_margin、android:gravity和android:layout_gravity...对比,常见误区
android 社区整理的有关动画的知识,值得收藏....
一些带搜索功能的app,在搜索栏下面一般会提供一些关键字供用户选择。
也可以根据用户输入的文字,在下一次使用的时候该文字出现在常用关键字里面,只要轻轻一点就可以搜索了,无需再次输入。
关键字可以动态添加,这就要考虑换行的问题了
android 异常和解决办法
1.Android Bitmap OutOfMemory解决办法
在Android应用里,最耗费内存的就是图片资源。而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常,解决办法有:适当时候手动释放内存、将图片压缩、代码优化...
2.PatternSyntaxException: Syntax error in regexp pattern near index 1
例如代码: temp =temp.split("}")[1];会出错,报上述异常。 因为“{” 是关键字符,要加上转意字符temp =temp.split("\\}")[1];
SQLite在3.6.19版本中才开始支持外键约束,但是为了兼容以前的程序,默认并没有启用该功能,如果要启用该功能每次都要需要使用如下语句:PRAGMA foreign_keys = ON来打开。也就是说,在执行删除一个班级的语句的时候需要执行db.execSQL("PRAGMA foreign_keys=ON")
This version of the rendering library is more recent than your version of ADT plug-in. Please update ADT plug-in,导致无法正常预览布局文件;问题根源:SDK版本过高,ADT版本低
5.java.io.NotSerializableException的解决办法
非静态内部类拥有对外部类的所有成员的完全访问权限,包括实例字段和方法。为实现这一行为,非静态内部类存储着对外部类的实例的一个隐式引用。序列化时要求所有的成员变量是Serializable,现在外部的类并没有implements Serializable,所以就抛出java.io.NotSerializableException异常
由于当时的Launcher设置为强制横屏了,应该是不会引起重启的。
对于Configuration改变系统会发一个android.intent.action.CONFIGURATION_CHANGED的广播
于是就做了一个广播接收器去检测是不是由于Configuration改变引起的(后来发现Launcher本身有监听这个广播)
果然发现MCC值由0(未定义)变为460(中国)
android 开发环境
Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发效率
亲测可行,可以解决上述问题
很详细很强大,一步一步手把手教你搭建开发环境
跨平台移动开发实际上就是基于HTML5开发软件界面和主要的业务逻辑,因此一套完善的基于移动平台的HTML5开发环境是非常有必要的
android API
1.setCompoundDrawables和setCompoundDrawablesWithIntrinsicBounds
setCompoundDrawables 画的drawable的宽高是按drawable.setBound()设置的宽高,
所以才有The Drawables must already have had setBounds(Rect) called.setCompoundDrawablesWithIntrinsicBounds是画的drawable的宽高是按drawable固定的宽高,
所以才有The Drawables' bounds will be set to their intrinsic bounds
2.getMeasuredWidth和getWidth在何时可以取得正确数值
1.在构造方法中无论是getWidth还是getMeasuredWidth都是得不到正确数值的。
2.getMeasuredWidth得到正确数值需要在调用过onMeasure之后。
3.getWidth得到正确数值需要调用过onLayout之后。
Activity的所有属性中英对照解释,非常详细的资料
其他
2005年在水木社区BLOG上发表了《清华梦的粉碎--写给清华大学的退学申请》明确要求退学,痛斥国内高等教育弊端
移动支付安全是移动支付发展一直无法逾越的坎,支付密码、账号被盗案件比比皆是。为了给网络支付安全打造真正的保护伞,支付宝近日宣布,推出新型的安全体系,未来将用生物识别、行为习惯等来替代密码给消费者的移动支付钱包保驾护航。