Android開發(fā)快速啟動圖文教程(Android?Studio?+?Java)
一、創(chuàng)建項目
a.點擊左上角的《四條橫線》—《文件》—《新建》—《新建項目》

b.根據(jù)需要選擇對應的模板,一般默認選擇《Empty Activity》—《下一步》

c.根據(jù)自己的需要設置《Name》—《Save location》—《Language》—《Minimum SDK》,其他默認選擇即可

二、認識開發(fā)界面
1.項目目錄

| 二級文件夾 | 三級文件夾 | 文件名 | 作用 |
| manidests | AndroidManifest | 以xml格式定義軟件配置(權限、版本等) 聲明頁面、服務等 | |
| java | 存放Java/Kotlin代碼 | ||
| 包名 | 業(yè)務代碼 | ||
| MainActivity | 初始頁面代碼 | ||
| 包名(androidTest) | 需要在設備上運行的測試代碼 | ||
| 包名(test) | 純Java/Kotlin邏輯的測試代碼 | ||
| res | 存放圖片、布局等文件 | ||
| drawable | 存放圖片、按鈕等繪制資源 | ||
| ic_launcher_backgroud | 圖標背景層 | ||
| ic_launcher_foreground | 圖標前景層 | ||
| layout | 存放頁面、菜單、提示框等布局文件 | ||
| activity_main | 初始頁面布局 | ||
| mipmap | 存放軟件啟動圖標 | ||
| ic_launcher | 普通形狀的啟動圖標 | ||
| ic_launcher_round | 圖形啟動圖標 | ||
| values | 存放值(宏定義) | ||
| colors | 定義顏色 | ||
| strings | 定義字符串 | ||
| themes | 應用主題樣式(默認) | ||
| themes(night) | 應用主題樣式(夜間) | ||
| xml | 存放非界面類的配置文件 | ||
| backup_rules | 軟件數(shù)據(jù)備份規(guī)則 | ||
| data_extraction_rules | 數(shù)據(jù)提取規(guī)則 | ||
| GradleScripts | 存放gradle構建腳本 |
2.左側工具欄

3.頂部工具欄

三、代碼開發(fā)
1.xml布局(前端)
1.1創(chuàng)建文件夾
a.點擊《res》—右鍵—《新建》—《Android Resource Directory》

b.根據(jù)需要設置《Directory name》,可以根據(jù)需要設置《Resource type》,里面有常見的文件夾類型

1.2需要注冊的文件(Activity頁面為例)
它們:Activity頁面 / Service后臺服務 / ContentProvider跨應用共享數(shù)據(jù) / Broadcast接收器等
它們并不是都需要xml文件,但都必須要有其對應的代碼(定義類)和在AndroidManifest注冊(聲明一個該類的變量)——可以理解為一個特殊的類變量,一個類只有一個變量
1.2.1創(chuàng)建xml布局文件
方法一:自動創(chuàng)建
a.點擊《res/layout》—右鍵—《新建》—《Activity》—根據(jù)需要點擊創(chuàng)建的Activity,一般為《Empty View Activity》

| 分類 | 文件 | 作用 |
| 導航方式 | Bottom Navigation | 自帶底部導航的頁面 |
| Navigation Drawer | 自帶側邊欄的頁面 | |
| Tabbed Views | 自帶頂部選項卡的頁面 | |
| UI交互 | Fullscreen Views | 全屏頁面 |
| Scrolling Views | 可以滾動的頁面 | |
| Empty Views | 啥都沒有的頁面(高度自定義) | |
| 適配場景 | Android TV Blank | 電視端,焦點導航 |
| Responsive Views | 響應式布局頁面(自適應) | |
| Primary/Detail Flow | 適配大屏和小屏 | |
| 架構模式 | Fragment + ViewModel | MVVM架構,數(shù)據(jù)與UI分離 |
| Settings Views | 自動存儲設置 |
b.根據(jù)需要調整《Activity Name》等,點擊《完成》。
會自動在《res/layout》下創(chuàng)建xml文件
在《java/包名》下創(chuàng)建java文件
并在《manifest/AndroidManifest》注冊Activity

方法二:手動創(chuàng)建
a.點擊《res/layout》—右鍵—《新建》—《Layout Resource File》創(chuàng)建xml布局文件

b.設置《File name》—《確定》

c.點擊《java/包名/activity》—《新建》—《Java類》創(chuàng)建邏輯代碼文件

d.選擇《類》—《回車》

e.在《manifest/AndoridManifest》注冊該Activity

1.2.2使用
a.點擊右上角《v》,可設置xml文件的瀏覽方式

b.用xml格式編碼布局,通過不斷的套娃使用LinearLayout、RelativeLayout等,將一個大的頁面分為N個小的塊,再在塊里面放UI組件:例如LinearLayout里面有N個RelativeLayout,每個再加上UI組件
c.在對應的Java文件編輯其邏輯
1.3不需要注冊的文件(Toolbar工具欄為例)
復雜的需要專門用一個xml文件來定義布局:ActionBar導航 / Toolbar工具欄 / Dialog對話框 / PopupWindow彈窗 / ListView列表等
不復雜的可以直接在activity.xml通過android::屬性定義布局:TextView文本框 / Button按鈕 / ImageView圖片框等
方法一:專門用一個xml文件
a.點擊《res/layout》—右鍵—《新建》—《Layout Resource File》創(chuàng)建xml布局文件

b.設置《File name》—《確定》

c.用xml格式編碼布局,通過不斷的套娃使用LinearLayout、RelativeLayout等,將一個大的頁面分為N個小的塊,再在塊里面放UI組件:例如LinearLayout里面有N個RelativeLayout,每個再加上UI組件

d.在Activity中引用

方法二:直接在Activity中使用

2.邏輯代碼(后端)
2.1java代碼目錄(基于Android 系統(tǒng)內置的 SQLite 數(shù)據(jù)庫工具類)
| 文件夾名(默認都在java/包名下) | 文件名(例子) | 作用 |
| entity | User | 數(shù)據(jù)實體類 |
| db | AppAdapter | 數(shù)據(jù)庫管理類(定義和操作全部數(shù)據(jù)表) |
| adapter | UserAdapter | 適配器(將數(shù)據(jù)庫的數(shù)據(jù)與UI綁定) |
| activity | MainActivity | 頁面實體類 |
| Util | 一些工具方法 | |
| service等 |
2.2創(chuàng)建文件夾
a.點擊《java/包名》—右鍵—《新建》—《軟件包》

b.輸入文件夾名

2.3用戶交互邏輯
2.3.1需要注冊的
a.點擊《java/包名/activity》的對應文件,在《onCreate》方法中與xml文件進行綁定

b.通過生命周期方法來定義邏輯
2.3.2不需要注冊的
a.點擊《java/包名/activity》的對應文件,在類里面定義成員變量
b.在《onCreate》方法中通過findViewByxx與組件進行綁定

c.通過setOnClickListener等方法設置監(jiān)聽器來實現(xiàn)邏輯
2.4數(shù)據(jù)庫邏輯(基于Android 系統(tǒng)內置的 SQLite 數(shù)據(jù)庫工具類)
a.在《java/包名/entity》(沒有entity文件夾就創(chuàng)建)中定義數(shù)據(jù)模型(實體類),并創(chuàng)建構造方法和相應的get和set方法

b.在《java/包名/db》(沒有db文件夾就創(chuàng)建)中定義《AppAdapter》,并定義數(shù)據(jù)庫配置(名稱、版本) + 相關數(shù)據(jù)表的常量定義 + 表的SQL語句 + 數(shù)據(jù)庫構造方法 + 相關數(shù)據(jù)表的操作
package com.example.csdn_article.db;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import java.util.ArrayList;
public class AppDatabaseHelper extends SQLiteOpenHelper {
// 數(shù)據(jù)庫名稱(會在設備中生成此名稱的數(shù)據(jù)庫文件)
private static final String DATABASE_NAME = "multi_table_db";
// 數(shù)據(jù)庫版本號(升級時需遞增)
private static final int DATABASE_VERSION = 1;
// ------------------------ User表相關常量 ------------------------
public static final String TABLE_USER = "user";
public static final String USER_COLUMN_ID = "id";
public static final String USER_COLUMN_NAME = "name";
public static final String USER_COLUMN_EMAIL = "email";
public static final String USER_COLUMN_AGE = "age";
// 創(chuàng)建User表的SQL語句
private static final String CREATE_TABLE_USER = "CREATE TABLE " + TABLE_USER + "("
+ USER_COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ USER_COLUMN_NAME + " TEXT NOT NULL,"
+ USER_COLUMN_EMAIL + " TEXT UNIQUE,"
+ USER_COLUMN_AGE + " INTEGER"
+ ")";
// 構造方法
public AppDatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
// 數(shù)據(jù)庫第一次被創(chuàng)建時調用(初始化所有表)
@Override
public void onCreate(SQLiteDatabase db) {
// 執(zhí)行創(chuàng)建表的SQL語句,順序很重要(有外鍵的表要在被關聯(lián)表之后創(chuàng)建)
db.execSQL(CREATE_TABLE_USER); // 創(chuàng)建User表
}
// 數(shù)據(jù)庫版本升級時調用(版本號增加時)
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 簡化處理:刪除舊表,創(chuàng)建新表(實際開發(fā)中應考慮數(shù)據(jù)遷移)
db.execSQL("DROP TABLE IF EXISTS " + TABLE_USER);
onCreate(db);
}
// ------------------------ User表的操作 ------------------------
/**
* 添加用戶
* @param user 要添加的用戶對象
* @return 新添加記錄的ID,-1表示失敗
*/
public long addUser(User user) {
// 獲取可寫數(shù)據(jù)庫
SQLiteDatabase db = this.getWritableDatabase();
// 用ContentValues存儲字段值(類似鍵值對)
ContentValues values = new ContentValues();
values.put(USER_COLUMN_NAME, user.getName());
values.put(USER_COLUMN_EMAIL, user.getEmail());
values.put(USER_COLUMN_AGE, user.getAge());
// 插入數(shù)據(jù)到表中,返回新記錄的ID
long id = db.insert(TABLE_USER, null, values);
db.close(); // 關閉數(shù)據(jù)庫連接
return id;
}
}c.在Java代碼中定義《AppAdapter》變量,調用該變量的數(shù)據(jù)庫操作方法獲取、更改數(shù)據(jù)

3.運行虛擬機測試

3.1創(chuàng)建虛擬機
a.點擊《Device Manager》—《Vritual》—《Create Device》

b.按照需求選擇《Category》—虛擬機—《下一步》

c.根據(jù)需求選擇API版本(小于創(chuàng)建項目設置的API版本將運行不了該項目)

d.最后查看一下虛擬機配置,點擊《完成》

3.2運行虛擬機
a.點擊《運行》(一定要有足夠的內存運行,否則報錯The emulator process for AVDPixel_7_APl34 has terminated.)
b.點擊《Running Devices》,查看運行的虛擬機

總結
到此這篇關于Android開發(fā)快速啟動的文章就介紹到這了,更多相關Android開發(fā)快速啟動內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
在AndroidManifest.xml中uses-sdk內屬性意思
本文為大家講解下minSdkVersion、targetSdkVersion、maxSdkVersion、target API level四個數(shù)值的意思與區(qū)別,感興趣的朋友可以參考下哈2013-06-06
Android 1.5 1.6 2.0 2.1 2.2 的區(qū)別詳解
本篇文章是對Android 1.5 1.6 2.0 2.1 2.2 版本之間的區(qū)別進行了詳細的分析介紹,需要的朋友參考下2013-06-06
Android之自定義實現(xiàn)BaseAdapter(通用適配器二)
這篇文章主要為大家詳細介紹了Android之自定義實現(xiàn)BaseAdapter通用適配器第二篇,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-08-08
android RecycleView實現(xiàn)下拉刷新和上拉加載
這篇文章主要為大家詳細介紹了android RecycleView實現(xiàn)下拉刷新和上拉加載,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-06-06
Android中監(jiān)聽系統(tǒng)網絡連接打開或者關閉的實現(xiàn)代碼
本篇文章對Android中監(jiān)聽系統(tǒng)網絡連接打開或者關閉的實現(xiàn)用實例進行了介紹。需要的朋友參考下2013-05-05

