这一节我们来讲解创建项目;说道大家可能就会说了,创建项目还有谁不会啊,还需要讲吗,别急听我慢慢到来,肯定有你不知道的。

使用项目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项目实战之高仿网易云音乐创建项目和配置的更多相关文章

  1. Android项目实战之高仿网易云音乐项目介绍

    这一节我们来讲解这个项目所用到的一些技术,以及一些实现的效果图,让大家对该项目有一个整体的认识,推荐大家收藏该文章,因为我们发布文章后会在该文章里面加入链接,这样大家找着就很方便. 目录 第1章 前期 ...

  2. 新鲜出炉高仿网易云音乐 APP

    我的引语 晚上好,我是吴小龙同学,我的公众号「一分钟GitHub」会推荐 GitHub 上好玩的项目,一分钟 get 一个优秀的开源项目,挖掘开源的价值,欢迎关注我. 项目中成长是最快的,如何成长,就 ...

  3. 2.Android高仿网易云音乐-引导界面和广告界面实现

    效果图 效果图依次为图片广告,视频广告,引导界面. 系列文章目录导航 目录 1.实现分析 广告界面就是显示图片和视频,所以可以放一个图片控件,视频控件,然后跳过按钮,提示按钮,WiFi预加载提示都是放 ...

  4. Android高仿网易云音乐-启动界面实现和动态权限处理

    效果 实现分析 基本上没有什么难点,就是布局,然后显示用户协议对话框,动态处理权限,判断是否显示引导界面,是否显示广告界面等. 布局 <?xml version="1.0" ...

  5. 3.Android高仿网易云音乐-首页复杂发现界面布局和功能/RecyclerView复杂布局

    0.效果图 效果图依次为发现界面顶部,包含首页轮播图,水平滚动的按钮,推荐歌单:然后是发现界面推荐单曲,点击单曲就是直接进入播放界面:最后是全局播放控制条上点击播放列表按钮显示的播放列表弹窗. 1.整 ...

  6. 《云阅》一个仿网易云音乐UI,使用Gank.Io及豆瓣Api开发的开源项目

    CloudReader 一款基于网易云音乐UI,使用GankIo及豆瓣api开发的符合Google Material Desgin阅读类的开源项目.项目采取的是Retrofit + RxJava + ...

  7. 【第二版】高仿Android网易云音乐企业级项目实战课程介绍

    这是一门付费Android项目课程,我们只做付费课程:同时也感谢大家的支持. 这一节,对本课程做一个简单介绍,以及放一些项目效果图,如果想直接查看项目视频演示,可以直接在腾讯课堂查看[高仿Androi ...

  8. C# WPF 低仿网易云音乐(PC)Banner动画控件

    原文:C# WPF 低仿网易云音乐(PC)Banner动画控件 由于技术有限没能做到一模一样的动画,只是粗略地做了一下.动画有点生硬,还有就是没做出网易云音乐的立体感.代码非常简单粗暴,而且我也写有很 ...

  9. C# WPF 低仿网易云音乐(PC)歌词控件

    原文:C# WPF 低仿网易云音乐(PC)歌词控件 提醒:本篇博客记录了修改的过程,废话比较多,需要项目源码和看演示效果的直接拉到文章最底部~ 网易云音乐获取歌词的api地址 http://music ...

随机推荐

  1. 【Elasticsearch 7 探索之路】(五)搜索相关 Search-API

    本节主要讲解 Elasticsearch 的 搜索相关功能 Search-API,讲解什么是 URL Search 和 Request Body Search 的语法,对常用的语法都会一一进行详细介绍 ...

  2. js练习- 给你一个对象,求有几层

    // 比如这个a中,就有四层.如何算出这四层 const a = { b: 1, c() {}, d: { e: 2, f: { g: 3, h: { i: 4, }, }, j: { k: 5, } ...

  3. [TimLinux] MySQL 导入sql文件数据慢的问题解决办法

    慢的时候执行的命令: mysql -uusername -p -hip_address -Ddb_name < ./db.sql 快的时候执行的命令: mysql -uusername -p - ...

  4. [TimLinux] JavaScript input框的onfocus/onblur/oninput/onchange事件介绍

    1. onfocus事件 input框获取到焦点时,触发了该事件,比如获取到焦点时,修改input框的背景色.这个功能其实可以使用css的伪类:focus来定义. 2. onblur事件 这个与onf ...

  5. Java中替换字符串中特定字符,replaceAll,replace,replaceFirst的区别

    使用“;”替换过字符串中的“,” public class Test01 {public static void main(String[] args) {String number = " ...

  6. 回文自动机(PAM) 入门讲解

    处理回文串,Manacher算法也是很不错,但在有些问题的处理上比较麻烦,比如求本质不同的子串的数量还需要结合后缀数组才能解决.今天的们介绍一种能够方便的解决关于回文串的问题的算法--PAM. 一些功 ...

  7. 【CSS】271- RGB、HSL、Hex网页色彩,看完这篇全懂了

    作者:CSS可乐 http://csscoke.com/2015/01/01/rgb-hsl-hex/ 网页使用到的色彩标示方法中,从古早时期大家都在用的16进位码(#000000).RGB色值标示. ...

  8. Linux(CentOS)安装SQL Server

    1.下载Microsoft SQL Server Red Hat 存储库配置文件 curl -o /etc/yum.repos.d/mssql-server.repo https://packages ...

  9. 函数计算: 让小程序开发进入 Serverless 时代

    点击下载<不一样的 双11 技术:阿里巴巴经济体云原生实践> 本文节选自<不一样的 双11 技术:阿里巴巴经济体云原生实践>一书,点击上方图片即可下载! 作者 | 吴天龙(木吴 ...

  10. forEach()和for/in循环的缺点与for-of循环

    以数组为例,JavaScript 提供多种遍历语法.最原始的写法就是for循环. for (var index = 0; index < myArray.length; index++) { c ...