您好,我是碼農(nóng)飛哥,感謝您閱讀本文,歡迎一鍵三連哦。 本文會重點(diǎn)介紹如何創(chuàng)建第一個Android應(yīng)用,以及如何使用Android Studio進(jìn)行調(diào)試
干貨滿滿,建議收藏,需要用到時??纯?。小伙伴們?nèi)缬袉栴}及需要,歡迎踴躍留言哦~ ~ ~。
前言
上一篇文章我們介紹了Android Studio的安裝以及Android SDK的目錄結(jié)構(gòu)。這篇文章將介紹如何使用Android Studio創(chuàng)建第一個Android應(yīng)用,重點(diǎn)介紹Android Studio的目錄結(jié)構(gòu)。
創(chuàng)建第一個Android應(yīng)用
首先,讓我們來創(chuàng)建第一個Android應(yīng)用。在歡迎頁面點(diǎn)擊New Project按鈕。進(jìn)入下一個界面之后選中Basic Activity 按鈕,創(chuàng)建一個基本視圖的Android應(yīng)用。
接著進(jìn)入下一個界面,在這個界面中可以填寫項(xiàng)目名,包名等等。這里我新建了一個名為HelloWorld項(xiàng)目。
設(shè)置完成之后點(diǎn)擊Finish 按鈕。即可完成第一個Android項(xiàng)目的創(chuàng)建。應(yīng)用加載完成之后項(xiàng)目HelloWorld的目錄結(jié)構(gòu)如下圖所示:
程序加載沒問題之后,就可以設(shè)置一個模擬器,操作步驟如下圖所示,這里我設(shè)置了Nexus S API 30和Pixel2 API 30 兩個模擬器,每個模擬的尺寸都不相同。
設(shè)置好模擬器之后,如果只需要運(yùn)行項(xiàng)目的話則點(diǎn)擊下圖左邊的按鈕,如果要對代碼進(jìn)行調(diào)試(debug模式)的話則需要點(diǎn)擊下圖右邊的按鈕。
運(yùn)行結(jié)果如下圖所示:
Android應(yīng)用的目錄結(jié)構(gòu)
說完了Android應(yīng)用程序的創(chuàng)建之后,接下來就來看下這個HelloWold 應(yīng)用程序的目錄結(jié)構(gòu)吧。如果Project窗口沒有出現(xiàn),則依次選擇 View->Tool Windows->Project。選擇好窗口之后,從該窗口的下拉列表中選擇Android視圖。然后,你就能看到如下文件。
- app-> java->com.jay.helloworld->MainActivity這是主Activity。它是應(yīng)用的入口,當(dāng)您構(gòu)建和運(yùn)行應(yīng)用時,系統(tǒng)會啟動此Activity的實(shí)例并加載其布局,
public class MainActivity extends AppCompatActivity {
private AppBarConfiguration appBarConfiguration;private ActivityMainBinding binding;@Overrideprotected void onCreate(Bundle savedInstanceState) {
// 調(diào)用父類的onCreate方法 super.onCreate(savedInstanceState);
binding = ActivityMainBinding.inflate(getLayoutInflater());
// 調(diào)用setContentView方法顯示視圖界面 setContentView(binding.getRoot());// 設(shè)置對工具欄ToolBar的支持 setSupportActionBar(binding.toolbar);
NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment_content_main); appBarConfiguration = new AppBarConfiguration.Builder(navController.getGraph()).build(); NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration);
// 點(diǎn)擊事件 binding.fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) .setAction("Action", null).show(); } }); } ·······省略部分代碼 }
MainActivity 繼承于AppCompatActivity,并重寫了onCreate方法,AppCompatActivity類是Android Studio中默認(rèn)的構(gòu)建自定義Activity的模板類。這里其實(shí)還涉及到FirstFragment和SecondFragment兩個Fragment。它們兩個是用來控制圖7中的點(diǎn)擊按鈕的。4. **app->res->layout->activity_main.xml** 此XML文件定義了activity界面(UI)的布局,整體布局都是采用CoordinatorLayout布局,這個布局是support v7系統(tǒng)新增的布局,具有便于協(xié)調(diào)子布局的特點(diǎn),該布局是增強(qiáng)版的FrameLayout布局,它通常與ToolBar和FloatingActionButton合用。```xml<?xml version="1.0" encoding="utf-8"?><androidx.coordinatorlayout.widget.CoordinatorLayout 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:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <com.google.android.material.appbar.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/Theme.HelloWorld.AppBarOverlay"> <androidx.appcompat.widget.Toolbar android:id="@ id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:popupTheme="@style/Theme.HelloWorld.PopupOverlay" /> </com.google.android.material.appbar.AppBarLayout> <include layout="@layout/content_main" /> <com.google.android.material.floatingactionbutton.FloatingActionButton android:id="@ id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" android:layout_marginEnd="@dimen/fab_margin" android:layout_marginBottom="16dp" app:srcCompat="@android:drawable/ic_dialog_email" /></androidx.coordinatorlayout.widget.CoordinatorLayout>
其中ToolBar是圖7中顯示HelloWorld的藍(lán)色工具欄,具有承載系統(tǒng)菜單的功能。FloatingActionButton是圖7中右下側(cè)的郵箱圖標(biāo)的按鈕。<include layout="@layout/content_main" />
這行代碼將content_main.xml 的布局嵌入activity_main布局中。content_main.xml的代碼為:
<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <fragment android:id="@ id/nav_host_fragment_content_main" android:name="androidx.navigation.fragment.NavHostFragment" android:layout_width="0dp" android:layout_height="0dp" app:defaultNavHost="true" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" app:navGraph="@navigation/nav_graph" /></androidx.constraintlayout.widget.ConstraintLayout>
- app->manifests->AndroidMainifest.xml 清單文件描述了應(yīng)用的基本特性并定義了每個應(yīng)用組件,是整個項(xiàng)目的配置資源,里面配置的內(nèi)容包括當(dāng)前應(yīng)用程序所在的包,應(yīng)用程序中的Activity,應(yīng)用程序的訪問權(quán)限等等。
- Gradle Scripts -> build.gradle這里是gradle構(gòu)建項(xiàng)目的文件,一個針對項(xiàng)目Project:HelloWorld,一個針對應(yīng)用模塊Project:HelloWorld.app。每個模塊均有自己的build.gradle文件。但此項(xiàng)目當(dāng)前僅有一個模塊,所以只有一個針對應(yīng)用模塊。
Android Studio的調(diào)試
學(xué)會用Android Studio進(jìn)行代碼調(diào)試是開發(fā)者的一項(xiàng)必備技能。
設(shè)置斷點(diǎn)
雙擊需要添加斷點(diǎn)的代碼行的左側(cè)。出現(xiàn)如下紅點(diǎn)說明斷點(diǎn)設(shè)置成功。
調(diào)試
斷點(diǎn)設(shè)置好之后,還需要在調(diào)試模式下運(yùn)行,才能是斷點(diǎn)生效。點(diǎn)擊下圖的小烏龜進(jìn)入調(diào)試模式。
運(yùn)行之后可以看到Debugger和Console兩個tab頁面,Debugger頁面主要是用來記錄方法的調(diào)用棧以及查看運(yùn)行時的變量的值。Console則是控制臺。
總結(jié)
本文首先詳細(xì)介紹了如何創(chuàng)建第一個Android應(yīng)用程序,接著介紹了如何用Android Studio進(jìn)行調(diào)試。
我是碼農(nóng)飛哥,再次感謝您讀完本文。
全網(wǎng)同名【碼農(nóng)飛哥】。不積跬步,無以至千里,享受分享的快樂 我是碼農(nóng)飛哥,再次感謝您讀完本文。
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實(shí),本站將立刻刪除。