千金一刻莫空度,老大无成空自伤。这篇文章主要讲述Android项目实战之高仿网易云音乐创建项目和配置相关的知识,希望能为你提供帮助。
这一节我们来讲解创建项目;说道大家可能就会说了,创建项目还有谁不会啊,还需要讲吗,别急听我慢慢到来,肯定有你不知道的。使用项目android Studio创建项目我们这里就不讲解了,主要是讲解如何配置一个符合企业标准的项目。这一节我们来讲解创建项目;说道大家可能就会说了,创建项目还有谁不会啊,还需要讲吗,别急听我慢慢到来,肯定有你不知道的。
使用项目Android Studio创建项目我们这里就不讲解了,主要是讲解如何配置一个符合企业标准的项目。
SDK配置
我们这里配置编译SDK为27,目标SDK版本为22,V7依赖库版本为27.1.0,这里我们设置目标SDK版本为22是为了不在这个项目中处理动态权限,因为这个超出了我们课程第一版的范围,V7依赖库版本第一个版本需要的编译SDK版本一样。
版本号统一配置
通常情况下在企业开发中我们都会将每个Module的版本等信息放到项目的build.gradle文件中,这样做的好处可以统一修改。详细这部分我们在《详解Gradle》课程中讲解到了。也可以参考我们的AndroidDownloader开源项目的配置:https://github.com/lifengsofts/AndroidDownloader/blob/master/build.gradle
本项目下的build.gradle文件:
ext {
//最小版本
minSdkVersion = 15//编译版本
compileSdkVersion = 27//目标版本
targetSdkVersion = 22 //V7版本
androidSupportVersion = \'27.1.0\'
}
在这里相当定义一个ext方法,然后里面传递了多个命名参数,这个有点和Kotlin语言有点像,然后就可以在每个Module中引用这个变量就行了。例如:app下面的build.gradle文件:
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"
}
当然到这里基本配置就完了,但是还有更多配置,例如:代码测试覆盖率,持续集成等。后面会在相应的课程讲解,毕竟这里我们是做项目。
添加权限
<
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" />
API端点
企业开发中通常都有三个环境,分别是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常量类引用:
public static final String RESOURCE_PREFIX = BuildConfig.RESOURCE_PREFIX;
public static final String ENDPOINT = BuildConfig.ENDPOINT;
如果感觉我们写的不错,可以支持我们一下,本项目提供的在线电子书和在线视频教程,在官网购买可以优惠5元哟,同时视频课程也可以在网易云课程,腾讯课堂上购买。
有任何问题可以添加我们的QQ来讨论:3469271680;也可以扫描下面的二维码添加Android开发交流群和微信公众号(爱学啊官网底部也有联系方式哟),我们平均每天都会推送一篇优质文章;评论可能回复不是很及时,还望大家体谅;购买课程后可以获得一对一答疑服务,当然也可以谈人生谈理想瞎扯淡;同时如果是零基础想学编程的朋友也可以联系我们进行咨询,我们可以提供一些建议和帮助,让你在编程道路上更顺畅。
文章图片
【Android项目实战之高仿网易云音乐创建项目和配置】
文章图片
推荐阅读
- Caused by:java.lang.IllegalStateException at android.media.MediaPlayer._setDataSource(Native Method)
- 解决Eclipse EE部署web项目在Tomcat webapp目录下没有工程文件的问题
- Mybatis学习系列Mapper映射文件
- Appium对手机chrome浏览器操作
- Android银行卡识别技术介绍与应用
- Flask_appbuilder的学习:安装
- AppleScript
- [Android] QPST,解BL锁,刷Recovery,备份系统,root,刷框架.
- mapper 动态代理 注意事项