準備工作
Java環境變量配置好,參考:Java環境變量配置
然後首先是安裝程序,這裏默認不翻牆,使用國內的,下載地址有兩個,
一、安卓中文組下載
Android Studio下載地址-安卓中文組,最新版本目前是3.5.2
這個版本相對來說比較穩定,但不是最新版的
二、谷歌中國下載
Android Studio下載地址-谷歌中國,最新版本目前是4.0,這個版本新增了很多牛逼的功能,但是手上有工作項目的不要去輕易嘗試,BUG是肯定會有的,你放心,新手可以去下載安裝嘗試。
這個版本是目前最新的,但是從開發的角度來說,不建議馬上更新到最新,因爲喫螃蟹沒有那麼容易。
由於我之前已經下載過了3.5.0了,所以我就不需要再下載其他版本的了
安裝
雙擊運行
點擊 Next 下一步
點擊 Next 下一步
默認會給你轉到C盤,這裏我修改到了G盤(PS: 這裏一定要改路徑,否則隨着你開發過程中,你的C盤空間會越來越小,這裏我放的是G盤,只要不裝在系統盤裏,其他盤隨意,不過也要有一定空間纔行。),點擊 Next 下一步
點擊 Next 下一步(PS:這裏沒有其他騷操作,不要亂來)
等安裝完成
點擊 Next 下一步,
點擊Finish進行第一次運行了,如果你不是第一安裝了,那麼就是覆蓋安裝,也是一步到位,沒啥好講的。現在我們運行一下:
如果你選擇上面那個就會在你電腦安裝默認的配置,這裏不導入配置,直接OK即可,然後你就會看到AS的啓動圖片:
不得不說比之前的要好看一些:然後會彈出
就是讓發送使用的信息給谷歌,發個錘子,決絕,點擊“Don’t send”,
這個地方是說你沒有SDK,讓你設置代碼,這裏不設置,點擊 Cancel
等待一會兒
這個圖片是告訴你,Android能做的事情有手機,穿戴設備,TV,還有智能設備等,點擊 Next 下一步
Android Studio 默認會把你的SDK下載放在C盤,到時候你的C盤就炸了,谷歌太壞了,很多新手都會直接下一步
我們選擇Custom 自定義,然後點擊 Next 下一步
白色的看久了,我覺得眼睛不舒服,所以我都是默認黑色的,看個人喜好,然後點擊 Next 下一步,之前我們選擇自定義SDK的路徑
所以這個地方就是讓你該路徑的,改好之後就點擊 Next 下一步
然後就會下載對應當前版本的SDK配置文件,點擊Finish就會開始下載(PS: 請在網絡良好是嘗試)
很明顯,我的這個網速就不這麼樣,這個時候你就可以泡一杯咖啡,說到咖啡你有沒有想到Java的圖標呢?
好了,點擊finish
1.啓動一個新的Android Studio項目
2.打開一個現有的Android Studio項目
這裏只說前面一兩條,既然是做教程,那我們創建一個新的項目(PS:創建一個新的和打開一個已有的項目有什麼區別呢,創建一個新的就只有這樣項目最基本的已經插件和依賴,以這個新的爲準,而打開已有的就會以老項目的環境爲準,這就是爲什麼你從網上下載別人的代碼再打開之後要配置很久的原因,因爲你的環境和別人不一定就一樣,其次就是裏面用到的SDK、API版本、依賴框架等一些內容不一樣,所以用的時間很久,猶豫是在網絡慢的時候更突出,相當煎熬,我咖啡都喝了兩杯了,還沒有下載完配置,心碎,辣雞軟件,毀我青春)。
這裏默認是創建的一個空的Activity(活動),點擊Next。下一步
點擊finish 就會開始創建這個項目並下載一些配置文件
可以看到這個左下角就是在配置你的項目,鬼知道它要下多久,讓我們端起之前泡好的咖啡,輕輕地吹一口,摸一下油光發亮的腦門,看着窗外開始思考今天晚上喫什麼?話說程序員是一個需要耐心的職業,因爲有Bug這種東西,然後程序員還有兩個死對頭,就是產品和測試,這兩個人壞的很,都是等到下班的時候來提需求和Bug,這讓我收鍵盤的手微微顫抖了起來,然後又要重啓電腦,打開手機點外賣,最慘的還不是這個時候,是疫情期間,外賣我不放心,所以捱餓到晚上回家自己做飯,關鍵是回家之後又不餓了,但是還是得做飯,不然第二天中午喫啥,光鮮亮麗的背後都是狗血的人生啊,電視劇裏的程序員都是扯淡,那也要程序員嗎?脫離羣衆只是拍給那些沒有入行的人看的,相當的扯淡,說到這裏,我們來看一下進度怎麼樣了
。。。。。。我都找不到表情包來形容我此刻的心情了。安裝過程中電腦的防火牆還會給你彈一下
允許訪問就會繼續下載:
然後就會發現這裏報了一個錯,我們點一下這個藍色字體,繼續下載,然後就報錯了:
這是因爲當前項目所需的gradle在當前離線模式下面沒有。
需要聯網進行下載。
找到File -Setting–Gradle
查看自己之前的gradle的配置是否正確,然後將offline work 離線模式關掉
然後Apply一下
try Again 點擊再嘗試一波,給個機會啊,
只要你點了這個try Again 它沒有馬上報錯,你就有希望,雖然這個希望有時候很渺茫,但是做人嘛,夢想還是要有的,不然和鹹魚和什麼區別(PS: 雖然鹹魚翻身還是鹹魚,但是起碼能賣的貴一點,記得有一次我去超市買菜,魚類區,魚類區擺着兩條魚,一條普通魚一條鹹魚,普通魚35.5,鹹魚72.5,我問售貨員,這個鹹魚怎麼貴這麼多,不就是多放了鹽嘛?他說:這是有夢想的鹹魚,年輕人你有沒有夢想啊?)跑題了,不知道下載好了沒有
第一次,都這樣,難免的 ,哎。
終於下完了,不容易啊,
現在來改動它的外觀,先把頁面的背景改一下,黑乎乎不好看
File → Settings
選擇背景圖片
改完背景之後再改字體
現在明顯比之前要好看一些:
現在再去配置Git ,方便我們進行代碼管理
Git下載地址
選擇Windows,
然後選擇對應你係統的安裝成員,然後下載,又到了考驗網速的時候了
安裝Git除了改安裝地址,後面一律Next
中間省略一些截圖
安裝已經完成了,這時候就可以在AS裏面配置Git了
File → Settings
然後點一下Test,測試一下如果你的Git沒有問題就會彈出你的Git版本,Git配置問了現在就需要一個Git的賬號,各位自己去創建就可以了
登錄成功之後你的郵箱會收到一個郵件,打開郵件
如果是第一次配置的話,如果你第一次提交代碼的話,會需要你提供郵箱收到的驗證碼,驗證身份。
現在我們的Git賬戶就登陸上去了
異常情況
有位朋友遇到這樣的情況,所以這裏加上去
提示:AS 登錄 Github 時,一直提示密碼錯誤,其實有可能是設備未授權,我就是這樣。需要上 Github 官網,登錄帳號,會有提示是否授權當前設備,併發一個授權碼到你的郵箱。輸入授權碼完成授權,再回到 AS 就能登陸成功了。
然後再安裝幾個插件
1.GsonFormat
快速將json字符串轉換成一個Java Bean,免去我們根據json字符串手寫對應java Bean的過程。
2.Android ButterKnife Zelezny
配合ButterKnife實現註解,從此不用寫findViewById,想着就爽啊。在Activity,Fragment,Adapter中選中佈局xml的資源id自動生成butterknife註解。
安裝完插件之後AS需要重啓一下,
然後就是怎麼使用這兩個插件的問題了。
首先第一個
GsonFormat
JSON字符串
{
"HeWeather6": [
{
"basic": [
{
"cid": "CN101010100",
"location": "北京",
"parent_city": "北京",
"admin_area": "北京",
"cnty": "中國",
"lat": "39.90498734",
"lon": "116.4052887",
"tz": "+8.00",
"type": "city"
}
],
"status": "ok"
}
]
}
這是一段JSON字符串,現在訪問接口主流返回這種字符串,複製一下,
點擊OK
然後這個實體類就寫好了
然後是第二個插件,
在工程的build.gradle裏面加上
build.gradle代碼:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
//新增
mavenCentral()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
//新增
classpath 'com.jakewharton:butterknife-gradle-plugin:10.1.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
//新增
maven { url "https://jitpack.io" }
//新增
mavenCentral()
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
然後在項目的build.gradle 裏面的
android閉包中加入如下代碼:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
dependencies閉包裏面加入如下依賴代碼
//butterknife
implementation 'com.jakewharton:butterknife:10.1.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'
項目的build.gradle的代碼:
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
buildToolsVersion "29.0.3"
defaultConfig {
applicationId "com.llw.helloworld"
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
//butterknife
implementation 'com.jakewharton:butterknife:10.1.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'
}
然後sync一下
然後修改一下佈局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/tv_test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
<Button
android:layout_marginTop="20dp"
android:id="@+id/btn_test"
android:text="測試"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
然後在MainActivity.java中
鼠標右鍵點擊佈局文件activity_main 選擇Generate
現在就可以用這個插件,點擊紅色邊框中的Generate ButterKnife Iniertions
然後confirm提交,這個時候我們再看MainActivity.java
package com.llw.helloworld;
import android.os.Bundle;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
public class MainActivity extends AppCompatActivity {
@BindView(R.id.tv_test)
TextView tvTest;
@BindView(R.id.btn_test)
Button btnTest;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
}
@OnClick(R.id.btn_test)
public void onViewClicked() {
Toast.makeText(this,tvTest.getText().toString(),Toast.LENGTH_LONG).show();
}
}
然後運行在手機上:
運行效果如下圖
到這裏就結束了,有什麼問題,隨時call我