跟我學Android之二 第一個程序

視頻課:https://edu.csdn.net/course/play/7621
java

一:四大核心組件android

Activity(活動)
     是Android應用中負責與用戶交互的組件
Service(服務)
     Service一般位於後臺運行,它通常不須要與用戶交互,所以Service組件沒有圖形用戶界面
BroadcastReceiver(廣播接收器)
     用於接收系統中其它組件發送的廣播
ContentProvider(內容提供者)
     多個應用程序之間進行實時的數據交換的前提web

二:工程目錄結構數據庫

Android按照用途將不一樣的內容分別存放在不一樣的目錄中
app

src文件夾
存放開發者編寫的源代碼
存放導入的第三方的源代碼
框架

gen文件夾
ide

存放系統自動生成的代碼
工具

assets文件夾
佈局

存放程序中使用的nonmedia文件
測試

bin文件夾

存放編譯生成的文件和打包文件

libs文件夾

存放第三方的jar包

res文件夾

存放佈局文件、資源文件等

AndroidManifest.xml

配置文件


res文件夾主要用於存放各類資源

drawable相關文件下存放各類圖片文件。
layout下存放圖形用戶界面的佈局文件。
menu下存放菜單的佈局文件。
values下存放各類數據資源,如字符串資源。

         AndroidManifest.xml文件
                定義了應用程序的基本信息
               定義了應用程序包。
              定義應用程序組件。
             肯定默認Activity。
             肯定API使用權限。
            定義最小API級別。
           指定引用程序庫。

           R.java文件


 每一種資源在R類中存在一個惟一的ID 
R類存在與gen目錄中。 
通常狀況下不須要修改這個類(自動生成) 。 

java源代碼中但是引用資源                  Button btnLogin= (Button)findViewById(R.id.btnLogin);

XML文件中也能夠引用資源                 @drawable/ic_launcher                  @string/app_name

assets下存放nonmedia文件

不會被編譯成二進制,原樣保存在apk包中。
不會被映射到R類中,須要使用AssetManager類進行訪問。
能夠建立子目錄。


建立第一個Activity


Activity是一個應用程序組件:
包含了一個能夠和用戶交互的顯示界面
好比:拍照、發郵件、瀏覽地圖等
每一個Activity都有一個窗口
這個窗口一般是充滿屏幕的
也能夠比屏幕小而浮於其餘窗口之上
一個Android應用程序能夠包含一個或多個Activity
這些Activity之間是相對獨立的
當一個Activity啓動時,以前的那個Activity就中止了

建立一個Activity一般有這樣幾個步驟: 

爲這個Activity設計一個界面佈局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">


    <TextView android:id="@+id/textview1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="我是文本控件" />


</LinearLayout>

須要建立一個Activity類的子類
必須實現onCreate()方法

public class MainActivity extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}


Intent是在組件之間傳遞的消息

能夠在同一個應用程序或者不一樣應用程序之間傳遞

這個消息是一個Intent類的對象,包含一組信息

Action——要執行的或者已發生的動做

ACTION_CALL(字符串常量)

ACTION_MAIN (字符串常量)

ACTION_SCREEN_ON (字符串常量)

Category——指明應該處理當前intent的組件種類

CATEGORY_HOME (字符串常量)

CATEGORY_LAUNCHER (字符串常量)

Intent過濾器用於指定組件「願意」接收的Intent
能夠包含Intent中包含的信息所對應的過濾條件
Action
Category
在配置Activity時一般經過Intent過濾器來給定Activity的執行條件

在AndroidManifest.xml文件中配置Activity

<manifest  …>
        <application …>
                <activity android:name=「com.csg.MainActivity」 android:label="@string/app_name">
                        <intent-filter>
                                <action android:name=「android.intent.action.MAIN」 />
                                <category android:name=「android.intent.category.LAUNCHER」 />
                        </intent-filter>
                </activity>
        </application>
</manifest>

Android應用的構建過程以下:


Android應用的構建過程以下:
一、使用aapt工具生成R.java文件
二、使用javac工具將.java文件編譯成.class文件
四、使用dx.bat批處理將衆多.class文件轉換成一個.dex文件
五、使用aapt工具打包資源文件(包括res、assets、AndroidManifest.xml等)
六、生成apk安裝文件
SDK目錄結構以下:


add-ons這裏面保存着附加庫
docs這裏面是Android SDK API參考文檔
platforms是每一個平臺的SDK真正的文件
tools目錄裏面包含了重要的編譯工具
platform-tools保存着一些通用工具,好比adb、和aapt、aidl、dx等文件
samples是Android SDK自帶的默認示例工程
tools做爲SDK根目錄下的tools文件夾,這裏包含了重要的工具

SDK經常使用包以下:

android.os 提供基本的操做服務,消息傳遞和進程間通訊IPC。

android.graphics 做爲圖形渲染包,提供圖形渲染功能。

android.database 包含底層API處理數據庫,方便操做數據庫表和數據。

android.content 提供各類服務訪問數據在手機設備上,程序安裝到手機設備和其餘相關資源,以及內容提供展現動態數據。

android.view  核心用戶界面框架。

android.widget 提供標準用戶界面元素,List(列表),Buttons(按鈕),Layout manager(佈局管理器)等,是組成咱們界面的基本元素。

android.app 提供高層應用程序模型,實現使用Activity。

android.provider 提供方便調用系統提供的content providers的接口。

android.webikit 包含以系列工做在基於Web內容的API。

DDMS 的全稱是Dalvik Debug Monitor Service

爲測試設備截屏

查看特定進程的線程及堆信息

Logcat窗口

廣播狀態信息

模擬電話呼叫

收發SMS短信

虛擬地理座標

Emulator Control能夠用於模擬控制

模擬撥打和接聽電話

模擬短信息收發

模擬地理座標位置





Logcat窗體簡介

Logcat窗體提供了應用運行中的日誌輸出與查詢過濾 
能夠輸出設備的全部輸出信息 
若是是真機,須要打開bebug模式 
支持日誌級別 
支持過濾查詢 


Android 中的日誌工具類是Log( android.util.Log),這個類中提供了以下幾個方法來供咱們打印日誌 
Log.v() 

打印那些最爲瑣碎的,意義最小的日誌信息

Log.d() 

打印一些調試信息

Log.i() 

用於打印一些比較重要的數據

Log.w() 

用於打印一些警告信息

Log.e() 

用於打印程序中的錯誤信息

設置過濾器

相關文章
相關標籤/搜索