android helloworld程序
1、單擊菜單 File > New > Project 彈出的窗口選擇創(chuàng)建一個新的 Android 項目。
在安裝好的Eclipse插件的新建項目,如圖所示:
?
?
2、并在創(chuàng)建 Android 項目的對話框里填寫項目的詳細信息,確認無誤后按下 finish 按鈕一個工程就被順利的創(chuàng)建成功了。
項目結(jié)構(gòu)圖示 :
?
?
簡單介紹一下幾個比較重要的目錄。
(1)src 目錄用于存放代碼。
(2)gen 目錄用于存放對應(yīng)該資源文件的代碼。
(3)res 目錄用于存放資源文件。
(4)res\layout 目錄用于存放布局描述文件。
(5)res\values 目錄用于存放常量定義文件。
?
src里cn.wangmeng.test下有一個helloworld,他的名字就來自于我們新建項目的時候填寫的Acivity name, 這個HelloWorld就繼承自Activity(Android Framework里面最重要的一個類,詳細信息可以參考 -> (Activity ), 我們簡單地理解為它是一個UI的容器,直接跟用戶打交道最前端的類。 還有一個R.java,這個類是系統(tǒng)根據(jù)res文件夾中的內(nèi)容自動為你生成的,我們先講一下res文件夾,res是resources的縮寫,顧名思義,你程序中所需要的文字,圖片,布局文件等等資源都是放在這個文件夾下面的,你現(xiàn)在看到這個文件夾下面有
drawable - 這個是放圖片的
layout - 這個是放布局文件的
values - 下面放字符串(strings.xml ) 最后是AndroidManifest.xml. 你每次添加一個Acivity都需要在這個文件中描述一下,整個項目的結(jié)構(gòu)都由這個文件控制。 布局是由XML控制的,內(nèi)容如下:
- <?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"
- />
- <Button android:id="@+id/button"
- android:text="@string/click_me"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content">
- </Button>
- </LinearLayout> 所有的android程序都是用XML布局的,而且布局分為很多種,布局中有兩個元素,一個是文本顯示框,一個是按鈕,一般LinearLayout,還有相對布局,這是官方提供的布局圖:
?
?
?
strings.xml是存放我們常用的常量,在JAVA里面用Resources.getText()獲取,在UI里android:text="@string/click_me"獲取,演示內(nèi)容如下:
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <string name="hello">Hello World, helloworld!</string>
- <string name="app_name">helloworld</string>
- <string name="click_me">click_me</string>
- </resources> 我們在按鈕添加了一個簡單的響應(yīng)事件,代碼如下:
- package cn.wangmeng.test;
- import android.app.Activity;
- import android.app.AlertDialog;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- public class helloworld extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- ?
- Button button=(Button)findViewById(R.id.button);
- button.setOnClickListener(new OnClickListener()
- {
- public void onClick(View v) {
- openDialog();
- }
- }
- );
- }
- private void openDialog(){
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
- builder.setTitle("Hello");
- builder.setMessage("Hello World \n");
- builder.setNegativeButton("OK",null);
- builder.show();
- }
- }
最后運行結(jié)果如下:
?
?
Run As Android Application,點擊右側(cè)的Home鍵,進入主界面,點擊主界面中間的按鈕,出現(xiàn)應(yīng)用列表,運行Hello, Android應(yīng)用即可。(請耐心等候運行結(jié)果,時間會比較長)
?
?
?
PS:
Android工程結(jié)構(gòu)
src:源代碼,我們的代碼。
gen:Android開發(fā)工具所生成的文件,我們不能編輯這個文件。
R.java,標識程序中使用的各種資源。沒有被此文件標識的資源,不會被打包到APK文件中。
assets:應(yīng)用系統(tǒng)需要使用到的文件,比如mp3、視頻...。這些文件會被原樣打包到APK中。
res:資源目錄,向此目錄添加資源時,會被R.java自動記錄。
drawabel-?dpi:圖標文件(*.png、*.jpg)
layout:界面布局文件(main.xml)與WEB應(yīng)用中的HTML類同
values:軟件上所需要顯示的各種文字。可以存放多個*.xml文件,還可以存放不同類型的數(shù)據(jù)。比如arrays.xml、colors.xml、dimens.xml、styles.xml...。
AndroidManifest.xml:項目的總配置文件,記錄應(yīng)用中所使用的各種組件。如果應(yīng)用中使用到手機中的功能,需要在此聲明使用權(quán)限。
default.properties:記錄項目中所需要的環(huán)境信息,比如Android的版本等。
AndroidManfest.xml分析
| manifest | 根節(jié)點,描述了package中所有的內(nèi)容 |
| xmlns:android | 包含命名空間的聲明。 xmlns:android=http://schemas. android.com/apk/res/android,使得 Android中各種標準屬性能在文件中使用, 提供了大部分元素中的數(shù)據(jù) |
| Package | 聲明應(yīng)用程序包 |
| application | 包含package中application級別組件聲 明的根節(jié)點。此元素也可包含application 的一些全局和默認的屬性,如標簽、icon、 主題、必要的權(quán)限,等等。一個manifest 能包含零個或一個此元素(不能大余一個) |
| android:icon | 應(yīng)用程序圖標 |
| android:label | 應(yīng)用程序名字 |
| Activity | 用來與用戶交互的主要工具。Activity是用 戶打開一個應(yīng)用程序的初始頁面,大部分 被使用到的其他頁面也由不同的activity所 實現(xiàn),并聲明在另外的activity標記中。 注意,每一個activity必須有一個<activity> 標記對應(yīng),無論它給外部使用或是只用于 自己的package中。如果一個activity沒有 對應(yīng)的標記,你將不能運行它。另外, 為了支持運行時查找Activity,可包含一個 或多個<intent-filter>元素來描述activity所支持的操作 |
| android:name | 應(yīng)用程序默認啟動的activity |
| intent-filter | 聲明了指定的一組組件支持的Intent值,從 而形成了IntentFilter。除了能在此元素下指 定不同類型的值,屬性也能放在這里來描 述一個操作所需的唯一的標簽、icon和其他信息 |
| action | 組件支持的Intent action |
| category | 組件支持的Intent Category。這里指定 了應(yīng)用程序默認啟動的activity |
| uses-sdk | 該應(yīng)用程序所使用的sdk版本相關(guān) |
?
Android程序運行過程
程序的運行由主配置文件開始AndroidManifest.xml:
?
接下來從HelloWorld類開始:
?
然后再我們再看看mail.xml:
?
再看看Strings.xml:
?
現(xiàn)在讓我們看看掌管資源的主文件R.java:
?
R.java文件中的所有資源ID全部是自動生成的,我們不可以手動編輯。當我們添加一個圖片時,ADT插件,會以圖片的名稱為常量的名稱,然后自動生成對應(yīng)的資源ID。當我們向strings.xml中添加一個字符串時,ADT插件會以符串的名稱為常量的名稱,然后自動生成對應(yīng)的資源ID。
?
R.java文件不需要我們手動編輯,我們只需要在需要使用到資源的地方引用這個文件里標識的資源即可!
轉(zhuǎn)載于:https://blog.51cto.com/linzheng/1081806
總結(jié)
以上是生活随笔為你收集整理的android helloworld程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。