最近,因个人方面的原因,打算辞职,所以经常会去招聘网站上看上几眼,我总结了下:一般小公司招聘Android工程师无非就是希望能招聘单干的程序员,一般大公司就希望招聘在某些领域非常精通的那种。
这里,我就说下小公司吧,要做到单干,应该至少要做到以下几点:1、熟练地搭建项目框架;2、熟悉常用框架原理,并能进行二次封装;3、熟悉基本控件和高级控件,并能自定义组件;4、具备该公司业务所需要的技术,像蓝牙开发、音频开发等;5、最好能熟悉C语言,懂底层。 以上只是我个人的一点看法,各位读者如果有什么其它意见,还望补充。ok,跟大家也闲扯了那么多,那我开始讲讲如何搭建一款高质量的APP。
目前,我正在通过使用MVP模式来开发一款个人APP,目前还正在开发中,许多的知识正在学习中,还望各位大伽见谅。这里,我先声明下,如果还不清楚如何使用Android studio新建工程的小伙伴可以自己去搜下,这里就不详细描述。
第一,对于配置的管理,我个人推荐在工程下单独建一个gradle文件进行统一管理,见下图:
以上为我在工程下新建的config.gradle文件,具体配置细节 可到我项目github上看下。
第二,一般我们开发一个APP至少有两个环境,开发环境和线上环境,更规范来说应该还有测试环境和验证环境。如此多的环境,如果不用上多渠道打包,岂不是把大部分时间花在了打包上。对于多渠道打包流程,我个人总结了下,供参考:
1、新建一个常量类,用于初始化所有请求路径;
2、在自定义Application里初始化url方法;
3、在 manifest文件里定义相关的变量,如下:
<meta-data android:name="DRIVER_SERVER_ROOT_URL"
android:value="${DRIVER_SERVER_ROOT_URL}" />
<meta-data android:value="xxxx" android:name="UMENG_APPKEY"/>
<meta-data android:value="xxxx" android:name="UMENG_CHANNEL"/>
4、在模块下的build.gradle文件里初始化相关变量;
// 多渠道打包配置
productFlavors {
// 生产环境
onLineEvn {
manifestPlaceholders = [
SERVER_ROOT_URL: project.Server_Root_Url_OnLine
]
}
// 开发环境
newDevEnv {
manifestPlaceholders = [
SERVER_ROOT_URL: project.Server_Root_Url_NewDev
]
}
}
// 开发使用时放开,本地调试时可以修改用指定的环境
productFlavors.all { flavor ->
flavor.manifestPlaceholders = [
SERVER_ROOT_URL: project.Server_Root_Url_NewDev
]
}
5、在gradle.properties文件定义根路径地址,如下:
线上环境:
Server_Root_Url_OnLine=http://xx.xxxx.xxx/
开发环境:
Server_Root_Url_NewDev=http://xx.xxxx.xxx/
第三,模块的划分。首先拿我本人做的app来说吧,我使用了MVP模式搭建的框架。划分大致如下:1、自定义的Application和其相关的类为单独的包;2、常量类的包; 3、自定义View的包; 4、工具包;5、model包(业务包);6、view包(UI) 7、presenter包(业务与视图的纽带) 8、基类包 。再细分的话,我就以view包简单说下,在该包下可以细分各个模块,便于查找。
第四,理清app的业务,把要展示的视图写下来,并能抽象地概括出来,这就是下一步写基类必须要做的工作。基类大大地减少了重复的工作量,提高工作效率,减少了很多的代码。写基类前最好先把流程图用画图工具画出来,一目了然。
以上是我做该项目至今的一点总结,后续还会给大家打来更多的干货物。当前做的项目主要采取Retrofit+Glide+Dagger2+RXJava第三方框架写的,更多细节查看本人github项目。
github地址: https://github.com/LJH001/GoHappy
参考项目: https://github.com/codeestX/GeekNews