4. 基于View,Context,Manager的开发
o 系统View & Layout(Layout也是View)
. 用View本身来做其他Layout间的一个分隔
. 常用的View&Layout: ListView,ScrollView,RelativeLayout,TableLayout
. 设计常用的style/theme用到的Drawable: http://idunnolol.com/android/drawables.html
. 常用的图片操作
. 指定颜色的渲染(setColorFilter)
. 剪裁
o 自定义View & Layout
. Java代码
public class TouchListView extends ListView { public TouchListView(Context context, AttributeSet attrs, int defStyle) { } }
public class Toolbar extends LinearLayout {
public Toolbar(final Context context) {
super(context); } public Toolbar(final Context con, AttributeSet attrs) { } }
activity跳转
sendBroadcast(实时数据交换可借助Thread+ BroadcastReceiver)
o WindowManager 、PackageManager 等的使用
2. 网络IO
o java.net
o android.net
o org.apache.http
如果没有让他在AsyncTask中操作,则他的TimeOut设置必须少于5秒(为ANR等待时间)
java.net.UnknownHostException
如果发生在emulator,可参考: http://www.javaeye.com/topic/521023
如果发生在mobile,则一般是DNS解析问题,要么允许用户再重试操作,要么把Host的域名改为public ip address
3. 绘图部分
o 在View上绘图
只在原来View上加边框等
Java代码
@Override protected void dispatchDraw(Canvas canvas) {}
@Override
protected void onDraw(Canvas canvas) {
Bitmap result = Bitmap.createBitmap(48,48, Config.ARGB_8888); Canvas canvas = new Canvas(result); ... canvas.drawBitmap(result, rect, rect, paint);
2. 动画
o 帧动画
控制侦速率在25FPS以让其更流畅
o 渐变动画
平移
缩放
旋转
透明
3. ANR
o 构建消息以及消息循环处理Handler
o 使用AsyncTask
4. Exception & UncaughtException
o 使用UncaughtExceptionHandler
5. 引入第三方jar以及与其他app共享数据
o 通过add user library方式添加第三方jar
o Content Provider的使用
6. 性能优化/调优
o 基于View的优化http://dl.javaeye.com/topics/download/774b3e9e-1c48-33bd-bc9d-5c27da998181
o 代码级的规范
o Method级的调优
Method Profiling(如果直接usb连接mobile,需要root权限作此项)
o GC分析
使用Allocation Tracker