1.先写系统设计文档,包括android系统设计说明文档,sqlite数据库设计等,这样能够加速开发效率.
2.使用mvp模式,并对代码进行合理的封装、优化等.
model和presenter按功能进行分类,但是,view为具体某个页面的接口,无法通用(除非有些页面比较类似),只能把一些通用的接口定义到一个基础接口里.所以表示器需要构造多个view.
3.将color资源都定义到colors.xml中.
4.将string资源都定义到strings.xml中,至少要将屏幕中看得到的字符串都定义到strings.xml里,方便文字国际化,以及减少应用的体积,降低数据的冗余.
5.layout布局文件的快速开发 定义布局模板或者styles样式或者使用include引用layout资源.
6.增加特殊的注释符号,
如://TODO 表示此处待编写。
//FIXME 表示此处待修正。
7.部分资源可以以常量的形式定义在java类中.
补充:使用Android Studio,可以:
1.在菜单中Analyze-->>Inspect Code... 借助ide来检查自己写的代码是否规范
,以及是否有bug。
2.查看TODO 有没有做。
3.使用live templates快捷键加速开发.
Strings.xml定义规范化
总结:
两大重点:1.每个页面用单独的注释包裹起来。
2.里面name的命名以类别打头。
1.java代码中最好不要出现直接的中文,需要通过strings.xml资源文件获取。xml里面的中文也要定义到strings.xml中去。
注意:
1. 页面上可以看见的字符串放到strings.xml里面.
2. 注意,不一定是中文的,可以是英文的字符串。
3. 工具类上的,非页面的string可以不用定义到strings.xml中。
4. 不要复用字符串资源。(不同的页面不要重用一个string。)
因为后续需求有变更,要分别使用不同的提示语,会导致你需要创建2个新的string.如果还有国外的语言,就会造成改动麻烦。
2.良好的文件结构,即同一页面的string用前缀和注释分离,如:
<!-- settings screen start -->
<string name="settings_log_out">Log Out</string>
<string name="settings_contact_us">Contact Us</string>
<!-- settings screen end -->
建议:里面的name 命名尽量以组件名打头,如: <string anme=”title_wdrz_detail_text”></string>,即:类别+模块名+模块子类名+功能(text)+状态(状态默认为default),注意,功能有时候可以省略
每个页面一个单独的string,用注释标清楚即可。
补充:可以为每个页面创建单独的 strings.xml 文件,如:settings-strings.xml,profile-strings.xml.但是一个app通常有10到20个页面。所以每一个语言目录下都会有10到20个strings.xml文件,个人认为这带来的是混乱。(在单语言app下可以采用这种模式,所以比较建议采用“同一页面的string用前缀和注释分离”)
如何获取strings.xml中的资源
Context.getString(R.string.settings_log_out);
如果在活动中,可以直接使用getString,如果是普通java类,则可以通过context.getString() 来获取。
其他获取方法:getResources().getString() 或者 getResources().getText()然后强制转型成string 或者aplication.getString().
定义到这里的理由
1.改起来方便,不需要改java代码。
2.你永远不知道你的应用要支持哪些语言。
扩展延伸
1.Format格式化:
永远不要使用+号来拼接字符串,因为不同的语言语序是不同的。
注意:在<string>中 加上%s ,然后在java代码中可以使用getString(int resId,Object…formatArgs) 来代替使用”+”号来进行字符串拼接。
如果有多个参数拼接,则使用 %1$s,%2$s,%3$s…. ,如果是int型数值,则使用%1$d,%2$d,%3$d…,此处一定要加$,否则会编译错误。
注意:一定要不要漏掉后面的类型,如:%1$s,s表示字符串。
2. 永远不要在java代码中解决复数问题,因为不同语言中复数的语法规则是不同的。
3.通过html文本来改变TextView中某些单词的颜色。只用于处理静态的词语。(还可以使用 < b >、< i >、< u > 来分别使字符串具有加粗、斜体和下划线。)如:
<string name="hello">
<![CDATA[
<font color=\'#28b5f5\'>Hello</font> world.
]]>
</string>
在java代码中使用:
TextView hello = (TextView) findViewById(R.id.hello);
hello.setText(Html.fromHtml(getString(R.string.hello)));
参考文章:
Android开发中string.xml文件存在的意义
http://blog.csdn.net/qq_34206198/article/details/52085134