編輯:Android開發實例
1、創建Project
當然第一步就是打開我們的Eclipse軟件,File->New->Android Project,出現如圖界面:
選擇我們需要的android版本。
我們來解釋下各項所代表的意思和其作用:
Project name:工程名,可以隨意填寫。
Contents:這個詢問你是否需要在一個已有的工程或者源文件的基礎上新建工程,當然我們這裡選擇Create new project in workspace。
Location:存放工程文件的目錄。
Build Target:所建工程主要面向哪個版本的平台,目前最新為4.0,我們選擇2.3。
Application name:應用程序的名字,以後如果你的程序要被人使用,那麼別人看到的就是這個名字。當然APP name可以在Layoutvaluesstring.xml文件中修改,在此處不能為空。
Package name:也就是存放我們源文件的地方。我想有java開發經驗和C#開發經驗(類似於namespace)的人對此一定不陌生,其最大的作用就是能夠防止類名沖突,使軟件的整體結構清晰明了。
Create Activity:一個APP中,必須有一個Activity文件,在新建一個Project時,系統會默認為你創建一個Activity。
Min SDK Version:應用程序可以運行的API最低版本。在Android平台中,API級別和平台版本是一一對應的,從最老版的Android 1.0到現在的Android 4.0 級別一共有14個級別,詳細的可以查看官方的幫助文檔。也就是說,我們的這個值和我們選擇的Android版本是有直接關系的,在上面我們選擇2.3版本,所以Min SDK Version=9 。當然這個值可以修改,但是在配置文件中會有告警,而且如果運行在低版本(如1.5)上,有可能導致應用程序崩潰。
2、Project結構解析
在Project創建好後,如下圖所示:
工程文件展開後,跟路徑下一共包含8個文件及文件夾。
src:存放用戶編寫的源文件的位置,裡面默認包含了一個和我們APP name一直的**Activity.java文件。
//引用的包名
package LiB.Demo;
import android.app.Activity;
import android.os.Bundle;
//創建一個Activity最首要的因素就是要該類繼承自Activity類,關於Activity將在筆記三種詳細介紹
publicclass MytestAppActivity extends Activity {
/** Called when the activity is first created. */
@Override
publicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//請看gen 的介紹
setContentView(R.layout.main);
}
}
gen:這個文件夾是有android開發工具自動生成的,裡面有一個R.java文件。會自動更具我們在res文件夾中放入的資源分類的創建一個全局唯一的ID。
/* AUTO-GENERATED FILE. DO NOT MOD
*
* This class was automatically generated by the
* aapt tool from the resource data it found. It
* should not be modified by hand.
*/
//在上面這段話中應該看出來了,R.java是有開發工具自動生成,不需要我們去修改,如果修改後將導致我們的APP找不到需要的資源ID而報錯
package LiB.Demo;
publicfinalclass R {
publicstaticfinalclass attr {
}
publicstaticfinalclass drawable {
publicstaticfinalint icon=0x7f020000;
}
//在 MytestAppActivity中的setContentView(R.layout.main)方法的參數
//對應res\layout\main.xml
publicstaticfinalclass layout {
publicstaticfinalint main=0x7f030000;
}
//對應res\values\string.xml
publicstaticfinalclass string {
publicstaticfinalint app_name=0x7f040001;
publicstaticfinalint hello=0x7f040000;
}
}
android 2.3 :SDK的jar包,有興趣的朋友可以幫助文檔上去看看。
assets & res:這兩個文件中存放的都可以是APP的資源文件,唯一不同的是res中的資源會在R.java中由開發工具編譯並自動生成一個唯一的ID,而在assets中就會保存成原來的格式而不會在R.java中生成唯一ID,如果要引用在assets文件夾中的資源,則需要使用getAssets()方法以及InputStream等文件操作方面的知識。所以一般較大的資源文件都建議放在assets文件夾中。
res文件夾中drwable-*的三個文件夾放置的使我們的圖標。分別對應高、低、中三個不同的分辨率,手機會根據自己的分辨率來選擇合適的圖標已達到最好的顯示效果。
res\layout:存放被編譯為屏幕布局(或屏幕的一部分)的XML文件。文件名對應R.java中的字段名。新建布局文件New->Android XML File->Layout。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android=http://schemas.android.com/apk/res/android
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
<!-- 為TextView創建一個ID,在R.java中將自動生成其ID的唯一值,方便引用 -->
android:id="@+id/textView_1"
/>
</LinearLayout>
res\values:在layout中只能存放屏幕布局的xml文件,而在values中可以存放很多種可以編譯的xml文件。新建文件New->Android XML File->values。建議最好在以後的Android學習或者開發過程中,把布局文件上需要的值都統一放到values中,這樣方便修改。
androidManifest.xml:當Android啟動一個應用程序時,它必須首先知道這個程序的存在,並且要知道這個程序將會訪問到那些設備或者數據,這個應用程序本身的一些配置屬性如它的APP name,Logo之類的。manifest文件就是配置這些信息的。當你的應用程序請求訪問藍牙或者WIFI時,就需要在manifest文件中配置響應的屬性。關於manifest文件的詳細信息,可以查看官方幫助文檔。
<?xml version="1.0" encoding="utf-8"?>
//在pakeage中指定了應用程序要使用的包名以及程序版本
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="LiB.android_1" android:versionCode="1" android:versionName="1.0">
//API等級
<uses-sdk android:minSdkVersion="9" />
//在application節中定義了程序的Logo,程序名,默認啟動的Activity
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Android_1Activity" android:label="@string/app_name">
//intent-filter——intent過濾器,這個將在後面的筆記中介紹,現在需要知道的就是action為動作,category為動作類型,當配置了以下過濾器後,activity中注冊的Android_1Activity文件將作為默認啟動的Activity文件
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
default.properties:開發工具自動生成,說明這個應用程序所針對的Android平台版本。
proguard.cfg:在說這個前我想說說前兩天看到的一篇博文,說是憤怒的小鳥被反編譯成了源碼,我也很感興趣的看了下,很不幸,裡面的類名什麼的都是被混淆過的,都是abc什麼一類的沒有具體意義的名字。我們文件夾中多出的這個proguard.cfg文件就是ADT自帶的混淆代碼的腳本配置文件。如果你以後開發了一個很牛的軟件,然後不想讓人家知道了裡面具體的實現代碼,那麼這就是一個很好的東西了。關於如何使用這個配置文件,還在研究中。
3、運行Project,右鍵Android_1,Run as->Android Application。如果沒有錯誤,那麼稍等片刻如下圖所示:
是的,我們有落入了Helloworld的俗套中,如果你不想落入俗套,那麼試著修改下程序。
4、關於SDK中自帶的幫助文檔,在..\android-sdk-windows\docs\reference\中打開classes.html,可以按照索引來查看所需要的東西。這個SDK的幫助文檔全部是英文的,但是看起來也不算很費勁。
JSON代表JavaScript對象符號。它是一個獨立的數據交換格式,是XML的最佳替代品。本章介紹了如何解析JSON文件,並從中提取所需的信息。Android提供了四個
APK是Android系統的發布的工程包,很多時候我們想在電腦上而非Android手機上面運行它。下面就提供下Android APK文件在電腦上面運行方法。 首先
本文實例總結了Android編程中圖片特效處理方法。分享給大家供大家參考,具體如下: 這裡介紹的Android圖片處理方法包括: 轉換 - drawa
JSON代表JavaScript對象符號。它是一個獨立的數據交換格式,是XML的最佳替代品。本章介紹了如何解析JSON文件,並從中提取所需的信息。Android提供了四個