最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android開發(fā)快速啟動(dòng)圖文教程(Android?Studio?+?Java)

 更新時(shí)間:2025年10月29日 11:11:44   作者:Sudan_God  
Java是一種廣泛用于企業(yè)級(jí)應(yīng)用和互聯(lián)網(wǎng)應(yīng)用的編程語(yǔ)言,而Android則是基于Java的移動(dòng)操作系統(tǒng),這篇文章主要介紹了Android開發(fā)快速啟動(dòng)(Android?Studio?+?Java)的相關(guān)資料,需要的朋友可以參考下

一、創(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í)文件夾文件名作用
manidestsAndroidManifest

以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 + ViewModelMVVM架構(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/包名下)文件名(例子)作用
entityUser數(shù)據(jù)實(shí)體類
dbAppAdapter數(shù)據(jù)庫(kù)管理類(定義和操作全部數(shù)據(jù)表)
adapterUserAdapter適配器(將數(shù)據(jù)庫(kù)的數(shù)據(jù)與UI綁定)
activityMainActivity頁(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í)例代碼

    這篇文章主要介紹了android 實(shí)現(xiàn)ScrollView自動(dòng)滾動(dòng)的實(shí)例代碼,有需要的朋友可以參考一下
    2014-01-01
  • Android實(shí)現(xiàn)圖片瀏覽功能的示例詳解(附帶源碼)

    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)用使用示例詳解

    這篇文章主要為大家介紹了Kotlin協(xié)程Context應(yīng)用使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Android ProgressDialog使用總結(jié)

    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實(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)用詳解

    這篇文章主要為大家介紹了Flutter?EventBus事件總線的應(yīng)用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • 詳解JS與APP原生控件交互

    詳解JS與APP原生控件交互

    本文主要分享了JavaScript與Android、IOS原生控件之間相互通信的詳細(xì)代碼實(shí)現(xiàn),具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-01-01
  • android讀寫中文如何避免亂碼詳解

    android讀寫中文如何避免亂碼詳解

    這篇文章主要介紹了android讀寫中文如何避免亂碼的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-04-04
  • kotlin Context使用詳解

    kotlin Context使用詳解

    這篇文章主要介紹了kotlin Context使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-03
  • Android中的Notification機(jī)制深入理解

    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

最新評(píng)論

伊吾县| 桑植县| 济南市| 灌阳县| 德兴市| 阳西县| 阿拉尔市| 临泉县| 双峰县| 湛江市| 博兴县| 丹江口市| 城口县| 齐河县| 金湖县| 固安县| 时尚| 浪卡子县| 洛川县| 思茅市| 蒙山县| 桦甸市| 合水县| 南靖县| 邵武市| 台东县| 浠水县| 石家庄市| 峨眉山市| 嵩明县| 延长县| 德惠市| 天柱县| 凤城市| 衡阳市| 昌吉市| 额尔古纳市| 如皋市| 桑日县| 宜春市| 延边|