Android項目實戰之高仿網易雲音樂建立項目和配置

這一節咱們來說解建立項目;說道你們可能就會說了,建立項目還有誰不會啊,還須要講嗎,別急聽我慢慢到來,確定有你不知道的。java

使用項目Android Studio建立項目咱們這裏就不講解了,主要是講解如何配置一個符合企業標準的項目。android

SDK配置

咱們這裏配置編譯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" />

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常量類引用:gradle

public static final String RESOURCE_PREFIX = BuildConfig.RESOURCE_PREFIX;
public static final String ENDPOINT = BuildConfig.ENDPOINT;

若是感受咱們寫的不錯,能夠支持咱們一下,本項目提供的在線電子書在線視頻教程,在官網購買能夠優惠5元喲,同時視頻課程也能夠在網易雲課程,騰訊課堂上購買。

有任何問題能夠添加咱們的QQ來討論:3469271680;也能夠掃描下面的二維碼添加Android開發交流羣和微信公衆號(愛學啊官網底部也有聯繫方式喲),咱們平均天天都會推送一篇優質文章;評論可能回覆不是很及時,還望你們體諒;購買課程後能夠得到一對一答疑服務,固然也能夠談人生談理想瞎扯淡;同時若是是零基礎想學編程的朋友也能夠聯繫咱們進行諮詢,咱們能夠提供一些建議和幫助,讓你在編程道路上更順暢。

Android開發交流羣
愛學啊官方公衆號

相關文章
相關標籤/搜索