1.编写目的
-
为了使项目文档组织有序,方便项目组成员协调开发工作,便于后期开发人员理解和维护代码,公司的android开发项目应该有一套命名规范,小组人员在编写代码时应该遵循这些规范,使用有意义的字符书写代码中得类型、变量,形成良好的编码风格。工程文件编码格式:UTF-8
2.简单描述
- 工程文件编码格式:UTF-8
3.包结构
- src的目录结构
com.hy.prss.mobile.android.constant
- 例如:Server_Config.java
- 描述:包下的所有类里只能装常量,常量格式public static final xxx XXX = xxx; R.id.xxx类似的资源文件不能定义在arrays里,定义在常量包里方便调用
com.hy.prss.mobile.android.widget
- 例如:IconTextListView.javaPictureDialog.java
- 描述:包下的所有类里只能是自定义控件或自定义dialog
com.hy.prss.mobile.android.entity
-
例如:User.java
-
描述:包下的所有类里只能是属性变量+get和set方法
com.hy.prss.mobile.android.activity
- 例如:MainActivity.java MyActivity是所有的Activity的父类,对Activity的统一的处理在MyActivity实现,
- 如:对顶部标题栏的显示和底部标题栏的显示Activity的作用: 加载layout, 初始化控件,设置监听,处理监听事件描述:所有活动的集合
com.hy.prss.mobile.android.service
- 例如:UserManager.java
- 描述:业务层
com.hy.prss.mobile.android.dao
- 例如:SqlDBHelper.java
- 描述:数据访问
com.hy.prss.mobile.android.util
- 例如:XmlUtil.java
- 描述:所有的零碎功能包括处理XmlUtil, JsonUtil,SharedPreferencesUtil, DBUtil,FileUtil,HttpUtil,SocketUtil,StringUtil, DeviceUtil
com.hy.prss.mobile.android.app
- 例如:MyService.java
- 描述:存放Broadcast,service, application 所有的Service继承MyService 服务:用在不需要界面时,还需要长时间在后台运行的地方广播:用来接收系统广播用于处理后台服务与前台界面的交互
com.hy.prss.mobile.android.test
- 例如:
- 描述:junit test模块测试
-
values的目录结构
主题方案
- 强烈推荐使用google官方推荐的Material Design风格
- 颜色需要在xml中定义好
- 样式需要在xml中定义好
依赖库与SDK
- 图片加载:fresco
- JSON解析:fastjson
- View注解库:butterknife
- 谷歌Material Design控件库:compile \'com.android.support:design:22.2.0\'
- 日志查看:KLog
- 下拉刷新:android-Ultra-Pull-to-Refresh
- 图片轮播:BGABanner-Android
- 文字生成图片:TextDrawable
- 百度地图SDK:http://developer.baidu.com/map/
- 友盟SDK:http://www.umeng.com/
- ShareSDK(分享):http://www.mob.com/
- Bughd(bug捕捉):http://bughd.com/
- im(内测):http://fir.im/
- 模拟器:Genymotion
- 更多开源控件及项目:android-open-project
Gradle
- 某些SDK运行是需要检测签名是否正确,所以在debug的时候也需要加入签名(腾讯的第三方登录),且把签名放进版本控制是不明智的做法。
- 推荐如下做法
- 在app的gradle中加入如下代码
Properties props = new Properties() props.load(new FileInputStream(file("signing.properties"))) android { signingConfigs { release{ keyAlias props[\'KEY_ALIAS\'] keyPassword props[\'KEY_PASSWORD\'] storeFile file(props[\'KEYSTORE_FILE\']) storePassword props[\'KEYSTORE_PASSWORD\'] } } buildTypes { release { signingConfig signingConfigs.release } debug { signingConfig signingConfigs.release } } }
- 在app的gradle文件同级目录新建signing.properties文件
KEYSTORE_FILE = C:\\Users\\Mr.Jude\\Documents\\Android\\HelloWorld.jks KEYSTORE_PASSWORD = xxxxxx KEY_ALIAS = xxxxxx KEY_PASSWORD = xxxxxx
- 将signing.properties添加进忽略目录。
- 其他人pull下来代码后。自己新建signing.properties填入相应信息后即可编译成功。