Được tạo bởi Blogger.

Labels

Thứ Sáu, 17 tháng 6, 2016

AndroidBasic - Hello World Example


Chúng ta hãy cùng bắt đầu lập trình thực với Android Framework. Trước khi bạn bắt đầu viết chương trình đầu tiên sử dụng Android SDK, bạn phải chắc chắn rằng bạn đã cài đặt môi trường phát triển Android chính xác như giải thích trong hướng dẫn Android - Environment Set-up. Tôi cũng giả sử rằng bạn có biết một chút kiến thức làm việc với Eclipse IDE.

Nên chúng ta hãy cùng tiếp tục viết một ứng dụng Android đơn giản sẽ in ra "Hello World!".

Tạo một ứng dụng Android
Bước đầu tiên là đi tạo một ứng dụng Android đơn giản sử dụng Eclipse IDE. Theo các bước sau: File -> New -> Project và cuối cùng chọn Android New Application. Bây giờ, tên ứng dụng của bạn là HelloWorld như hình:


Tiếp theo, theo các hướng dẫn sau và giữ nguyên tất cả các mục khác như mặc định đến bước cuối cùng. Một khi project của bạn được tạo thành công, bạn sẽ có giao diện làm việc dưới đây:


Cấu trúc của ứng dụng Android
Trước khi bạn chạy ứng dụng, bạn nên nhận biết một vài thư mục và file trong Android project - 


1. src: Thư mục này chứa các file nguồn .java cho project. Mặc định, nó bao gồm một file nguồn MainActivity.java có một activity class để chạy khi ứng dụng của bạn được bật lên bởi icon ứng dụng.

2. gen: Chứa file .R, một tập tin trình biên dịch tham khảo tất cả các nguồn được tìm thấy trong project. Bạn không nên chỉnh sửa file này.

3. bin: Thư mục này chứa các gói Android .apk được tạo ra bởi ADT trong suốt quá trình build và mọi thứ khác cần để chạy một ứng dụng Android.

4. res/drawable-hdpi: Chứa toàn bộ các đối tượng drawable được thiết kế cho các màn hình độ phân giải cao.

5. res/layout: Chứa toàn bộ các file định nghĩa giao diện người dùng của ứng dụng.

6. res/values: Chứa các file XML khác nhau, lưu trữ toàn bộ nguồn dữ liệu như định nghĩa string, colour,..

7. AndroidMainfest.xml: Đây là file mainfest miêu tả các đặc trưng cơ bản của ứng dụng, định nghĩa mỗi thành phần của nó.

Phần dưới đây sẽ cung cấp một cái nhìn tổng quan ngắn gọn một vài trong số các file quan trọng của ứng dụng. 

File Main Activity 
Main activity code là một file java MainActivity.java. Đây là file ứng dụng thực sự, sẽ nhận sự chuyển đổi tới một Dalvik executable và chạy ứng dụng của bạn. Dưới đây là code mặc định được tạo bởi wizard cho ứng dụng Hello World!

package com.example.helloworld;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;

public class MainActivity extends Activity {

   @Override
   public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
   }
   
   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
      getMenuInflater().inflate(R.menu.activity_main, menu);
      return true;
   }
}

Ở đây, R.layout.activity_main tìm đến file cục bộ activity_main trong thư mục res/layout. Phương thức onCreate() là một trong những phương thức được gọi đến khi một activity được load.

File Manifest
Bất cứ thành phần nào bạn phát triển như một phần của ứng dụng, bạn phải khai báo tất cả thành phần của nó trong file manifest.xml, được lưu trong địa chỉ gốc của ứng dụng. File này làm việc như một giao diện giữa Android OS và ứng dụng của bạn, nên nếu bạn không khai báo thành phần trong file này, nó sẽ không được xem xét bởi OS. Ví dụ, một file manifest mặc định sẽ trông như sau:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.helloworld"
   android:versionCode="1"
   android:versionName="1.0" >
   
   <uses-sdk
      android:minSdkVersion="8"
      android:targetSdkVersion="22" />
   
   <application
       android:icon="@drawable/ic_launcher"
       android:label="@string/app_name"
       android:theme="@style/AppTheme" >
       
       <activity
          android:name=".MainActivity"
          android:label="@string/title_activity_main" >
       
          <intent-filter>
             <action android:name="android.intent.action.MAIN" />
             <category android:name="android.intent.category.LAUNCHER"/>
          </intent-filter>
       
       </activity>
       
   </application>
</manifest>

Ở đây, các thẻ <application>...</application> là các thẻ có liên quan tới ứng dụng. Thuộc tính android:icon sẽ nhắm đến icon ứng dụng có sẵn trong đường dẫn res/drawable-hdpi. Ứng dụng sử dụng ảnh được đặt tên ic_launcher.png được đặt trong thư mục drawable.

Thẻ <activity> được sử dụng để định rõ một activity và android:name là thuộc tính chỉ rõ chất lượng đầy đủ tên class của subclass Activity và android:lable là thuộc tính định rõ một chuỗi để sử dụng như nhãn cho activity. Bạn có thể định rõ nhiều activity sử dụng các thẻ <activity>.

Action cho intent filter được đặt tên android.intent.action.MAIN để cho biết rằng activity này phục vụ như một đầu vào cho ứng dụng. Category cho intent-filter được đặt tên android.intent.category. LAUNCHER để cho biết rằng ứng dụng có thể được bật lên từ icon của thiết bị.

@string chuyển đến file string.xml được giải thích bên dưới. @string/app_name chuyển đến chuỗi app_name được định nghĩa trong file string.xml, và có tên "Hello World". Cách tương tự, các chuỗi khác nhận được tên thay thế trong ứng dụng.

Dưới đây là danh sách các thẻ, bạn sẽ sử dụng trong file manifest để định rõ sự khác nhau giữa các thành phần trong ứng dụng Android.

     + <activity> các phần tử cho các activity
     + <service> các phần tử cho các service
     + <receiver> các phần tử cho broadcast receiver
     + <provider> các phần tử cung cấp nội dung.

File Strings
File strings.xml được đặt trong thư mục res/values và nó chứa tất cả các text mà ứng dụng của bạn sử dụng. Ví dụ, tên của các button, label,..File này chịu trách nhiệm cho nội dụng của text. Ví dụ, một file strings mặc định sẽ nhìn giống như file dưới đây:

<resources>
   <string name="app_name">HelloWorld</string>
   <string name="hello_world">Hello world!</string>
   <string name="menu_settings">Settings</string>
   <string name="title_activity_main">MainActivity</string>
</resources>

File R
File gen/com.example.helloworld/R.java là sự liên kết giữa các file activity Java giống như MainActivity.java và các nguồn như strings.xml. Nó là một file tự động được tạo ra và bạn không nên điều chỉnh nội dung của file R.java. Dưới đây là mẫu của file R.java:

/* AUTO-GENERATED FILE.  DO NOT MODIFY.
 *
 * This class was automatically generated by the
 * aapt tool from the resource data it found.  It
 * should not be modified by hand.
 */

package com.example.helloworld;

public final class R {
   public static final class attr {
   }
   
   public static final class dimen {
      public static final int padding_large=0x7f040002;
      public static final int padding_medium=0x7f040001;
      public static final int padding_small=0x7f040000;
   }
   
   public static final class drawable {
      public static final int ic_action_search=0x7f020000;
      public static final int ic_launcher=0x7f020001;
   }
   
   public static final class id {
      public static final int menu_settings=0x7f080000;
   }
   
   public static final class layout {
      public static final int activity_main=0x7f030000;
   }
   
   public static final class menu {
      public static final int activity_main=0x7f070000;
   }
   
   public static final class string {
      public static final int app_name=0x7f050000;
      public static final int hello_world=0x7f050001;
      public static final int menu_settings=0x7f050002;
      public static final int title_activity_main=0x7f050003;
   }
   
   public static final class style {
      public static final int AppTheme=0x7f060000;
   }
}

File Layout
activity_main.xml là một file layout có sẵn trong địa chỉ res/layout, là file tham khảo của ứng dụng khi xây dựng giao diện. Bạn sẽ điều chỉnh file này rất thường xuyên để thay đổi layout ứng dụng của bạn. Cho ứng dụng "Hello World!", file này sẽ có nội dung liên quan tới layout mặc định:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent" >
   
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_centerHorizontal="true"
      android:layout_centerVertical="true"
      android:padding="@dimen/padding_medium"
      android:text="@string/hello_world"
      tools:context=".MainActivity" />
      
</RelativeLayout>

Đây là một ví dụ đơn giản của RelaytiveLayout, cái bạn sẽ học trong một chương riêng biệt. TextView là một Android control được dùng để xây dựng giao diện và nó có các thuộc tính như android:layout_width, android:layout_height, ect.

Running the Application
Hãy thử chạy ứng dụng Hello World vừa mới tạo. Tôi giả sử bạn đã tạo AVD trong môi trường cài đặt. Để chạy ứng dụng từ Eclipse, mở một file activity của project và click Run từ thanh công cụ. Eclipse cài đặt ứng dụng trên AVD và khởi động nó, nếu mọi thứ đúng với cài đặt và ứng dụng, nó sẽ hiển thị như dưới đây:


Chúc mừng! Bạn đã phát hiển ứng dụng Android đầu tiên của mình và bây giờ chỉ cần bám theo các hướng dẫn phía dưới từng bước một trở thành một nhà phát triển Android. Mọi thứ đều rất tuyêt

0 nhận xét:

Đăng nhận xét