这一节咱们来说解建立项目;说道你们可能就会说了,建立项目还有谁不会啊,还须要讲吗,别急听我慢慢到来,确定有你不知道的。java
使用项目Android Studio建立项目咱们这里就不讲解了,主要是讲解如何配置一个符合企业标准的项目。android
咱们这里配置编译SDK为27,目标SDK版本为22,V7依赖库版本为27.1.0,这里咱们设置目标SDK版本为22是为了避免在这个项目中处理动态权限,由于这个超出了咱们课程初版的范围,V7依赖库版本第一个版本须要的编译SDK版本同样。git
一般状况下在企业开发中咱们都会将每一个Module的版本等信息放到项目的build.gradle文件中,这样作的好处能够统一修改。详细这部分咱们在《详解Gradle》课程中讲解到了。也能够参考咱们的AndroidDownloader开源项目的配置:https://github.com/lifengsoft...github
本项目下的build.gradle文件:编程
ext { //最小版本 minSdkVersion = 15 //编译版本 compileSdkVersion = 27 //目标版本 targetSdkVersion = 22 //V7版本 androidSupportVersion = '27.1.0' }
在这里至关定义一个ext方法,而后里面传递了多个命名参数,这个有点和Kotlin语言有点像,而后就能够在每一个Module中引用这个变量就好了。例如:app下面的build.gradle文件:api
android { //设置编译版本 compileSdkVersion rootProject.ext.compileSdkVersion defaultConfig { applicationId "com.ixuea.android.courses.music" //最小编译版本 minSdkVersion rootProject.ext.minSdkVersion //目标版本 targetSdkVersion rootProject.ext.targetSdkVersion } }
同时依赖的版本,咱们使用变量替换版本号,包括RecyclerView,只是如今咱们还没引用他而已:微信
dependencies { implementation "com.android.support:appcompat-v7:$rootProject.androidSupportVersion" }
固然到这里基本配置就完了,可是还有更多配置,例如:代码测试覆盖率,持续集成等。后面会在相应的课程讲解,毕竟这里咱们是作项目。app
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_LOGS" /> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
企业开发中一般都有三个环境,分别是dev,qa,prod分别表明开发环境,测试环境,正式环境;部分企业还有一个预上线环境。对于咱们App来讲他们最大的不一样就是端点(endpoint)不一样,因此咱们这里要配置多个环境,配置有多种方法,能够经过渠道来配置,也能够经过建立多个java包,而咱们这里使用时在build.gradle中配置变量:测试
buildTypes { debug { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' //mock //buildConfigField 'String', 'ENDPOINT', '"http://rap2api.taobao.org/app/mock/14520/"' //buildConfigField 'String', 'RESOURCE_PREFIX', '"http://dev-courses-misuc.ixuea.com/%s"' //local //buildConfigField 'String', 'ENDPOINT', '"http://192.168.100.106:3000/v1/"' buildConfigField 'String', 'ENDPOINT', '"http://10.0.2.2:3000/v1/"' buildConfigField 'String', 'RESOURCE_PREFIX', '"http://dev-courses-misuc.ixuea.com/%s"' //dev //buildConfigField 'String', 'ENDPOINT', '"http://api-dev-courses-misuc.ixuea.com/v1/"' //buildConfigField 'String', 'RESOURCE_PREFIX', '"http://dev-courses-misuc.ixuea.com/%s"' /qa //buildConfigField 'String', 'ENDPOINT', '"http://api-qa-courses-misuc.ixuea.com/v1/"' //buildConfigField 'String', 'RESOURCE_PREFIX', '"http://res-qa-courses-misuc.ixuea.com/%s"' //prod //buildConfigField 'String', 'ENDPOINT', '"http://api-courses-misuc.ixuea.com/v1/"' //buildConfigField 'String', 'RESOURCE_PREFIX', '"http://res-courses-misuc.ixuea.com/%s"' } release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' //prod buildConfigField 'String', 'ENDPOINT', '"http://api-courses-misuc.ixuea.com/v1/"' buildConfigField 'String', 'RESOURCE_PREFIX', '"http://res-courses-misuc.ixuea.com/%s"' } }
而后咱们就能够在Java代码中经过经过BuildConfig常量类引用:gradle
public static final String RESOURCE_PREFIX = BuildConfig.RESOURCE_PREFIX; public static final String ENDPOINT = BuildConfig.ENDPOINT;
若是感受咱们写的不错,能够支持咱们一下,本项目提供的在线电子书和在线视频教程,在官网购买能够优惠5元哟,同时视频课程也能够在网易云课程,腾讯课堂上购买。
有任何问题能够添加咱们的QQ来讨论:3469271680;也能够扫描下面的二维码添加Android开发交流群和微信公众号(爱学啊官网底部也有联系方式哟),咱们平均天天都会推送一篇优质文章;评论可能回复不是很及时,还望你们体谅;购买课程后能够得到一对一答疑服务,固然也能够谈人生谈理想瞎扯淡;同时若是是零基础想学编程的朋友也能够联系咱们进行咨询,咱们能够提供一些建议和帮助,让你在编程道路上更顺畅。