1、可以指定android:weightSum属性 2、使用include标签来应对变化 3、使用ViewStub标签延迟加载有可能不需要加载的数据 标签中可以指定inflateId属性 4、使用自定义ViewGroup,重写onMeasure、onLayout 5、使用Android的PreferenceCategory
6、使用TextSwitcher、ImageSwitcher来制作过渡动画 7、使用LayoutAnimathionController,使用View#setLayoutAnimation 8、使用Canvas手动绘制一些动画 9、使用NineOldAndroids制作幻灯片播放动画 10、使用一个Editext样式的图片作为Button的背景来弹出DatePicker让用户选择正确的日期 11、使用TextView#setText(Html.fromHtml())来自定义样式,使用Spannable来自定义TextView的显示样式 12、使用TextView的shadowColor属性来定义发光字 13、使用xml定义圆角矩形 14、使用View#post()方法在activity的onCreate中获取view的大小 15、处理视屏播放横屏问题 16、移除activity的背景和title来加快启动速度
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.NoBackground" parent="android:Theme"> <item name="android:windowNoTitle">true</item> <item name="android:windowBackground">@null</item>
</style>
</resources>
17、使用Toast#setGravity来设置toast的显示位置 18、使用Gallery做注册界面
19、使用proguard 来删除日志 # -assumenosideeffects 20、使用hierarchy viewer来移除不必要的布局
21、Modle-View-Presenter 模式 Activity通过接口和Presenter Modle通信 22、BroadCastReceiver与Activity的生命周期保持一致,onResume onPause 23、使用Android的libry工程 24、当后台任务比较简单并且你不必关系结果的时候才去用AsyncTask 25、使用SyncAdapter处理后台任务 26、使用ListView的setEmptyView 27、ListView#ViewHolder 28、ListView使用ViewType进行分组 29、使用代理与Adapter进行通信 30、使用ListView的HeadView 31、ViewPager处理屏幕旋转 32、为ListView设置choiceMode 33、使用AspectJ进行AOP编程,使用Cocos2d-x 34、使用Itoa将Object-c代码运行在Android上 35、将Scala运行在Android上 36、使用intent来激活系统组件,比如拍照、选择一张图片 37、用户反馈时上传用户设备信息 38、将MP3添加到media ContentProvider
39、为ActionBar添加刷新按钮 40、使用LIFO后台任务为listView加载图片 41、使用ORMLite来操作数据库 42、使用原生sql语句比ORM框架性能好,使用NDK扩展sqlite的操作 43、使用批量操作数据库接口 44、全屏应用注意版本兼容 45、操作SharePreference时如果无需返回值使用apply代替commit 46、使用Marven 47、使用jekins进行不同版本要求的构建