应用的更新
从服务器拿数据后要处理得到数据为空、解析错误、解析为空的情况,防止后台坏掉后进不去activity;
用友盟等平台更新不能阻塞式强制更新,万一友盟维护了,应用就进不去了。
命名规则
布局中id的命名:尽量保证不同布局xml文件中不要有相同的id命名,不然ctrl想点进去的时候,不知道该跳转到哪个文件,当注释掉该控件后代码仍不会报错,运行时无响应且log打印不出错误,建议以文件或功能名开头命名控件;
view控件的命名:从其他项目复制代码过来之后,先将view控件的命名改为自己习惯的命名,不然会大大增加阅读别人代码的难度;
代码分离
通过构造参数将view传递进asynctask进行操作,而不需要传递context,从而把asynctask分类出来
1public ProgramTask(TextView text) { 2 this.text = text; 3 } 4 5protected void onPostExecute(String result) { 6// Log.d("===", "onPostExecute ====================>"); 7 text.setText(result); 8 } 9 10 @Override 11 protected void onPreExecute() { 12 // 任务启动,可以在这里显示一个对话框,这里简单处理 13 text.setText("正在播出:"); 14 } 15// 16// @Override 17// protected void onProgressUpdate(Integer... values) { 18// // 更新进度 19// System.out.println(""+values[0]); 20// message.setText(""+values[0]); 21// pdialog.setProgress(values[0]); 22// }
布局文件的简化
相同的布局属性通过style提取出来
1<ImageView 2 style="@style/home_btn_img" 3 android:src="@drawable/homeimg_01" />
放到styles.xml中
1<style name="home_btn_style"> 2 <item name="android:layout_width">0dp</item> 3 <item name="android:layout_height">match_parent</item> 4 <item name="android:layout_weight">1</item> 5 <item name="android:onClick">onClick</item> 6 <item name="android:gravity">center</item> 7 <item name="android:layout_margin">8dp</item> 8 <item name="android:orientation">vertical</item> 9 </style>
源码嫁接维护
分析别人的代码时,分析出一点,为一点代码抽出模块,并为变量更名为自己的习惯,并尽可能详细的添加注释,不然第二次看的时候又要重头分析,包括class类的功能说明,函数功能说明,参数说明,应用application中书写启动流程过程说明,布局文件中布局块功能说明