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

b.根據(jù)需要選擇對(duì)應(yīng)的模板,一般默認(rèn)選擇《Empty Activity》—《下一步》

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

二、認(rèn)識(shí)開發(fā)界面
1.項(xiàng)目目錄

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

3.頂部工具欄

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

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

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

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

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

b.設(shè)置《File name》—《確定》

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

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

e.在《manifest/AndoridManifest》注冊(cè)該Activity

1.2.2使用
a.點(diǎn)擊右上角《v》,可設(shè)置xml文件的瀏覽方式

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

b.設(shè)置《File name》—《確定》

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

d.在Activity中引用

方法二:直接在Activity中使用

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

b.輸入文件夾名

2.3用戶交互邏輯
2.3.1需要注冊(cè)的
a.點(diǎn)擊《java/包名/activity》的對(duì)應(yīng)文件,在《onCreate》方法中與xml文件進(jìn)行綁定

b.通過(guò)生命周期方法來(lái)定義邏輯
2.3.2不需要注冊(cè)的
a.點(diǎn)擊《java/包名/activity》的對(duì)應(yīng)文件,在類里面定義成員變量
b.在《onCreate》方法中通過(guò)findViewByxx與組件進(jìn)行綁定

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

b.在《java/包名/db》(沒(méi)有db文件夾就創(chuàng)建)中定義《AppAdapter》,并定義數(shù)據(jù)庫(kù)配置(名稱、版本) + 相關(guān)數(shù)據(jù)表的常量定義 + 表的SQL語(yǔ)句 + 數(shù)據(jù)庫(kù)構(gòu)造方法 + 相關(guān)數(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ù)庫(kù)名稱(會(huì)在設(shè)備中生成此名稱的數(shù)據(jù)庫(kù)文件)
private static final String DATABASE_NAME = "multi_table_db";
// 數(shù)據(jù)庫(kù)版本號(hào)(升級(jí)時(shí)需遞增)
private static final int DATABASE_VERSION = 1;
// ------------------------ User表相關(guān)常量 ------------------------
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語(yǔ)句
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"
+ ")";
// 構(gòu)造方法
public AppDatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
// 數(shù)據(jù)庫(kù)第一次被創(chuàng)建時(shí)調(diào)用(初始化所有表)
@Override
public void onCreate(SQLiteDatabase db) {
// 執(zhí)行創(chuàng)建表的SQL語(yǔ)句,順序很重要(有外鍵的表要在被關(guān)聯(lián)表之后創(chuàng)建)
db.execSQL(CREATE_TABLE_USER); // 創(chuàng)建User表
}
// 數(shù)據(jù)庫(kù)版本升級(jí)時(shí)調(diào)用(版本號(hào)增加時(shí))
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 簡(jiǎn)化處理:刪除舊表,創(chuàng)建新表(實(shí)際開發(fā)中應(yīng)考慮數(shù)據(jù)遷移)
db.execSQL("DROP TABLE IF EXISTS " + TABLE_USER);
onCreate(db);
}
// ------------------------ User表的操作 ------------------------
/**
* 添加用戶
* @param user 要添加的用戶對(duì)象
* @return 新添加記錄的ID,-1表示失敗
*/
public long addUser(User user) {
// 獲取可寫數(shù)據(jù)庫(kù)
SQLiteDatabase db = this.getWritableDatabase();
// 用ContentValues存儲(chǔ)字段值(類似鍵值對(duì))
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(); // 關(guān)閉數(shù)據(jù)庫(kù)連接
return id;
}
}c.在Java代碼中定義《AppAdapter》變量,調(diào)用該變量的數(shù)據(jù)庫(kù)操作方法獲取、更改數(shù)據(jù)

3.運(yùn)行虛擬機(jī)測(cè)試

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

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

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

d.最后查看一下虛擬機(jī)配置,點(diǎn)擊《完成》

3.2運(yùn)行虛擬機(jī)
a.點(diǎn)擊《運(yùn)行》(一定要有足夠的內(nèi)存運(yùn)行,否則報(bào)錯(cuò)The emulator process for AVDPixel_7_APl34 has terminated.)
b.點(diǎn)擊《Running Devices》,查看運(yùn)行的虛擬機(jī)

總結(jié)
到此這篇關(guān)于Android開發(fā)快速啟動(dòng)的文章就介紹到這了,更多相關(guān)Android開發(fā)快速啟動(dòng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
android 實(shí)現(xiàn)ScrollView自動(dòng)滾動(dòng)的實(shí)例代碼
這篇文章主要介紹了android 實(shí)現(xiàn)ScrollView自動(dòng)滾動(dòng)的實(shí)例代碼,有需要的朋友可以參考一下2014-01-01
Android實(shí)現(xiàn)圖片瀏覽功能的示例詳解(附帶源碼)
在許多應(yīng)用中,都需要展示圖片并支持用戶進(jìn)行瀏覽,本文主要為大家介紹了如何通過(guò)Android實(shí)現(xiàn)圖片瀏覽功能,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-09-09
Kotlin協(xié)程Context應(yīng)用使用示例詳解
這篇文章主要為大家介紹了Kotlin協(xié)程Context應(yīng)用使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
Android ProgressDialog使用總結(jié)
ProgressDialog 繼承自AlertDialog,AlertDialog繼承自Dialog,實(shí)現(xiàn)DialogInterface接口,本文給大家介紹Android ProgressDialog使用總結(jié)的相關(guān)知識(shí),需要的朋友通過(guò)此文一起學(xué)習(xí)吧2016-01-01
Android實(shí)現(xiàn)自定義ImageView的圓角矩形圖片效果
android顯示圓角矩形的圖片其原理就是首先獲取到圖片的Bitmap,然后進(jìn)行裁剪對(duì)應(yīng)的圓角矩形的bitmap,然后在onDraw()進(jìn)行繪制圓角矩形圖片輸出2018-05-05
Flutter?EventBus事件總線的應(yīng)用詳解
這篇文章主要為大家介紹了Flutter?EventBus事件總線的應(yīng)用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
Android中的Notification機(jī)制深入理解
這篇文章主要給大家介紹了關(guān)于Android中Notification機(jī)制的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02

