一、使用Android Studio 開發Android 應用的流程
- 創建一個Android 項目或Android 模塊
- 在XML 佈局文件中定義應用程序的用戶界面
- 在Java 代碼中編寫業務實現
二、一個簡單的登陸界面程序
1. 程序功能說明
- 效果圖:
- 主要功能:
輸入用戶名和密碼,點擊登陸按鈕做簡單的判斷:如果用戶名和密碼相同,則彈出一個登陸成功的提示
2. 創建Android 工程
注意:在創建工程的時候,根據業務需要選擇合適的SDK版本,目前Android 5.0以上版本佔據着很大的市場,所以我們從5.0 以上版本開始學習。
2. 1 瞭解Android 項目的組織結構
任何一個新建的項目都會 默認使用一個Android模式的項目結構,此結構是被Android Studio 轉換過了的,適合快速開發,但不易於理解,切換到Project模式後如下:
大概瞭解項目的組織結構,重點認識一下重要的幾個文件:
- gradle 和 .idea : Android Studio 自動生成的一些文件,無需關心
app :項目中的代碼、資源等內容全部都在該文件下,以後的開發也基本上是 在這個目錄下進行的,主要有一下組成:
- build : 不需要關心
- libs : 第三方的 jar 包
- AndroidTest ; 編寫測試用例
- java : 放置我們所有 Java 代碼的地方。
res : 項目中使用的所有資源文件:
- drawable : 圖片
- layout : 佈局文件
- values : 字符串
- AndroidMainifest.xml : 整個項目的配置文件,四大組件都需要在這裏註冊使用,還包括應用程序權限申明
- test : 編寫單元測試
- .gitingore : 將指定 的目錄或者文件排除在版本控制之外。
- app.iml : InteliJ IDEA 項目自動生成的文件,不需要關心
- build.gradle : app 模塊的 gradle 構建腳本, 指定很多項目的構建相關配置
- proguard-rule.pro : 用於指定代碼的混淆規則
- Gradle: 包含了gradle wrapper的配置文件
- .gitignore: 關於版本控制,將制定目錄或文件排除在版本控制之外
- build.gradle :項目全局的 gradle 構建腳本,通常不需要修該
- gradle.properties: *全局的 gradle 配置文件,其中屬性將會影響到項目的所有 gradle 編譯腳本
- gradlew 和gradlew.bat: 用來在命令行中使用gradle 命令,前者是在 Linux/Mac 中使用,後者是在Windows 中使用的。
- xxx.iml :*用於標識這是一個 IntelliJ IDEA 項目
- local.properties : 用於指定本機中的SDK 路徑
- settings.gradle : 指定項目中引入的所有模塊
然後來了解一下兩個重要的 build.gradle 文件:首先要知道 Android Studio 項目是基於Gradle 構建的,至於這個Gradle 是個什麼 ┏┛墓┗┓…(((m -__-)m,我也不知道。。。但是不影響我們學習,咱繼續
在我們的項目中有兩個build.gradle 項目:一個在App目錄下,一個在外層目錄
首先來看 app 下的build.gradle 文件:
由三部分組成:
第一行 : 表明是一個應程序模塊
第二個 :是一個Android 閉包,主要內容有:- 指定項目的編譯版本
- 嵌套一個defaultConfig 閉包: 指定了應用程序的包名、最低兼容的Android 版本、在目標版本上做了充分測試、項目的版本號、項目的版本名
- buildTypes 閉包:指定了安裝文件的相關配置:一般有兩個,一個是Debug版本(可省略),一個是release 版本,來了解一下release 版本的內容:
- minifyEnabled :是否對代碼進行混淆
- proguardFiles : 混淆規則,有兩個目錄可選擇:一個是SDK目錄下的proguard-android.txt(通用規則),一個是當前目錄proguard-rules.pro(自定義的一些混淆規則)
第三個:dependencies 閉包:指定當前項目的所有依賴關係,有三種那個:本地依賴、庫依賴和遠程依:
- implementation fileTree:本地依賴,表示將libs 目錄下的所有.jar 後綴文件都添加到項目的構建路徑當中
- 第二行是個遠程依賴聲明:com.android.support:appcompat-v7:28.0.0-rc01 是標準的遠程依賴格式,由 域名 + 組名 +版本號組成
- testImplementation: 用於聲明測試用例庫,暫時用不到
2. 2 修改佈局文件
在app>src>main>java>下找到:MainActivity.java文件
選中 activity_main 按住ctrl 鍵單擊,可以跟蹤到 activity_main.xml文件
或者在pp>src>main>res>layout 中找到activity_main.xm文件, 這就是MainActivity配套的XML佈局文件,打開該XML文件,進行修改。
修改佈局方式:先介紹最簡單的佈局LinearLayout 現行佈局。修改如下:
跟默認的XML 文件相比,此處製作了兩件事:- 修改佈局方式爲:LinearLayout
- 添加了對其方式–爲垂直:android:orientation=”Vertical”
接着添加兩個文本框控件
簡單的制定控件的屬性:- Id:制定該控件的唯一標識,用來獲取界面控件
- 控件高度、寬度:layout_width layout_height :match_parent(與父容器寬度相同),wrap_content(寬度取決於內容)
- 控件輸入類型以及輸入框提示語屬性:inputType hint
- 最後添加Button 控件
指定屬性,添加按鈕點擊事件:
- 設置控件寬高,提示語等
- 添加按鈕點擊事件:android:Onclick=” 事件處理函數名稱 “
- 在函數名稱上按ALT+回車:選擇Create event(view) in Mainactivity,之後轉到ava代碼處:
到此佈局文件已完成,可以創建啓動虛擬機(這裏虛擬機的SDK版本必須和當初創建Android 項目的時候選擇的SDK版本一致,否則會出錯),根據預覽效果再修改相應參數。
2. 3 核心邏輯的實現
- 首先要獲取用戶名和密碼
- 在按鈕點擊的處理函數中判斷用戶名和密碼是否相等,並給出提示
在MainActivity 中 定義兩個EditText 的變量,獲取用戶名和密碼,獲取方式是通過findViewById,代碼如下:
public class MainActivity extends AppCompatActivity {
EditText name ; //用戶名
EditText pass; //密碼
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 從這裏開始寫我們自己的代碼
name =(EditText)findViewById(R.id.name); //獲取用戶名
pass =(EditText)findViewById(R.id.pass); //獲取密碼
登陸驗證打代碼:
public void Check(View view) {
String mname ="Hello";
String mpass ="15pb";
String user = name.getText().toString().trim();
String pwd = pass.getText().toString().trim();
if (user.equals(mname) && pwd.equals(mpass))
{
Toast.makeText(this,
"恭喜,通過", Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(this,
"很遺憾,繼續努力", Toast.LENGTH_SHORT).show();
}
}
2. 4 運行測試
在工具欄找App旁邊找到 綠色三角形或者 Shift +F10 運行App(選擇符合自己項目SDK版本的模擬器)