[《第一行Android代碼》讀書筆記]第1章 開始啓程——你的第一行Android代碼

第1章 開始啓程——你的第一行Android代碼

1.1 Android系統四層架構:(從底至頂)

  • Linux內核層:爲Android設備的各種硬件提供底層驅動,如顯示驅動、音頻驅動、照相機驅動等

  • 系統運行庫層

    • 通過一些C/C++庫爲Android系統提供主要的特性支持,如SQLite庫提供了數據庫的支持
    • Android運行時庫,主要提供了一些核心庫,開發者可以使用Java語言編寫程序
    • 包含Dalvik虛擬機(5.0系統後改爲ART運行環境)
  • 應用框架層:提供構建應用程序時用到的各種API

  • 應用層:安裝在手機上的應用程序,包括系統自帶的聯繫人、短信等,或者自己在應用商店下載的微信等

架構具體如下圖:

=圖1.1 Android系統架構=

1.2 Android應用開發特色

  1. 四大組件

    • 活動(Activity):應用程序的前臺
    • 服務(Service):應用程序的後臺
    • 廣播接收器(Broadcast Receiver):接收廣播信息,比如電話、短信等
    • 內容提供器(Content Provider):使得應用程序之間可以共享數據
  2. 豐富的系統組件

  3. SQLite數據庫:Android系統自帶,是一種輕量級、速度快的嵌入式關係型數據庫

  4. 強大的多媒體

  5. 地理位置定位

1.3 搭建開發環境

需要準備的工具:

  • JDK
  • Android SDK:谷歌提供的Android開發工具包
  • Android Studio

1.4 Android程序部分重要目錄或文件

文件名 作用
java 放置所有java代碼
res 放置資源文件,比如圖片、佈局等
AndroidManifest.xml 項目配置文件,在這裏聲明組件、添加權限聲明等
build.gradle app模塊的gradle構建腳本,在這裏指定項目構建相關的配置
libs 放置第三方jar包

AndroidManifest.xml文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.helloworldapplication">
    <application
        ...
        <!--對MainActivity這個活動進行註冊-->
        <activity android:name=".MainActivity">
            <intent-filter>
                <!--下面兩行代碼表示MainActivity是這個項目的主活動-->
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

MainActivity

public class MainActivity extends AppCompatActivity {
//繼承於AppCompatActivity,實現向下兼容
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);//引入activity_main佈局
    }
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</LinearLayout>

1.5 使用Android的日誌工具Log

方法 作用
Log.v() 對應級別verbose。打印一些最爲瑣碎、意義最小的日誌信息
Log.d() 對應級別debug。打印一些調試信息
Log.i() 對應級別info。打印一些比較重要的數據
Log.w() 對應級別warn。打印一些警告信息
Log.e() 對應級別error。打印程序的錯誤信息

使用Log而不使用System.out:System.out不可控制日誌打印、打印時間無法確定、不能添加過濾器、日誌沒有級別區分…

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章