Ví dụ Hello World trong Android



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

Sau đây, chúng ta cùng viết một ứng dụng Android đơn giản mà sẽ in: Hello World.

Tạo ứng dụng Android

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

Tạo ứng dụng Hello trong Android

Kế tiếp, bạn theo các hướng dẫn đã cho và giữ tất cả mọi entry là mặc định tới bước cuối cùng. Khi project của bạn đã được tạo thành công, bạn sẽ có màn hình project như sau: −

Tạo ứng dụng Hello trong Android

Phân tích ứng dụng Android

Trước khi bắt đầu chạy ứng dụng, bạn nên biết về một số thư mục và file trong Android Project: −

Tạo ứng dụng Hello trong Android
Stt Folder, File & Miêu tả
1 src

Chứa .java source files cho project của bạn. Theo mặc định, nó bao gồm một MainActivity.java source file có một lớp Activity mà chạy khi ứng dụng của bạn được chạy bởi sử dụng biểu tượng app

2 gen

Chứa .R file, một file biên dịch mà tham chiếu tới tất cả resource được tìm thấy trong project của bạn. Bạn không nên sửa đổi file này

3 bin

Thư mục này chứa các Android package file là .apk được xây dựng bởi ADT trong khi xây dựng tiến trình và mọi thứ cần thiết khác để chạy một ứng dụng Android

4 res/drawable-hdpi

Đây là một thư mục cho các đối tượng drawable mà được thiết kế cho các màn hình có mật độ cao

5 res/layout

Đây là một thư mục cho các file mà định nghĩa giao diện UI cho ứng dụng của bạn

6 res/values

Đây là thư mục cho các XML file mà chứa một tập hợp các resource, như string hoặc color

7 AndroidManifest.xml

Đây là manifest file mà miêu tả các đặc trưng nền tảng của ứng dụng và định nghĩa mỗi thành phần của nó

Tiếp theo, chúng tôi sẽ trình bày ngắn gọn về một số file ứng dụng quan trọng.

Main Activity File trong Android

Main Activity code là một Java file với tên MainActivity.java. Đây là một file ứng dụng thực sự mà cuối cùng được chuyển đổi thành một Dalvik có thể thực thi và chạy ứng dụng của bạn. Sau đây là phần code mặc định được tạo cho 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 tham chiếu tới activity_main.xml file được đặt trong thư mục res/layout Phương thức onCreate() là một trong nhiều phương thức mà được tính toán khi một Activity được tải.

Manifest File trong Android

Bất cứ thành phần nào bạn phát triển như là một phần ứng dụng của bạn, thì bạn phải khai báo tất cả các thành phần của nó trong một manifest.xml mà đặt tất cả thư mục gốc của project. 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, vì thế nếu bạn không khai báo các thành phần trong file này, thì nó sẽ không được xem xét bởi OS. Ví dụ, manifest file 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> bao quanh các thành phần liên quan tới ứng dụng. Thuộc tính android:icon sẽ trỏ tới biểu tượng ứng dụng có sẵn dưới res/drawable-hdpi. Ứng dụng này sử dụng hình ảnh có tên ic_launcher.png được đặt trong các thư mục drawable.

Thẻ <activity> được sử dụng để xác định một Activity và thuộc tính android:name xác định tên lớp đầy đủ của lớp con Activity và thuộc tính android:label xác định một chuỗi để sử dụng như là nhãn cho Activity đó. Bạn có thể xác định nhiều activity bởi sử dụng thẻ <> này. <activity> tags.

Hành động cho Intent-Filter có tên android.intent.action.MAIN để chỉ rằng activity này phục vụ như là điểm entry cho ứng dụng. Category cho Intent-Filter có tên android.intent.category.LAUNCHER để chỉ rằng ứng dụng có thể chạy từ biểu tượng launcher của thiết bị.

@string tham chiếu tới strings.xml đã được đề cập ở trên. Vì thế, @string/app_name tham chiếu tới app_name được định nghĩa trong strings.xml, mà là HelloWorld. Tương tự, các string khác sẽ được đưa vào ứng dụng.

Sau đây là một số thẻ bạn sẽ sử dụng trong manifest file của bạn để xác định các thành phần ứng dụng Android khác:

  • Các phần tử <activity>cho các Activity

  • Các phần tử <service> cho các service

  • Các phần tử <receiver> cho Broadcast Receiver.

  • Các phần tử <provider> cho Content Provider.

Strings File trong Android

strings.xml được đặt trong thư mục res/values và nó chứa tất cả text mà ứng dụng của bạn sử dụng. Ví dụ, tên của các button, label, text mặc định, và các kiểu tương tự chuỗi vào trong file này. File này chịu trách nhiệm cho nội dung thuần văn bản. Ví dụ, một strings file mặc định sẽ trông như sau: −

<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>

R File trong Android

gen/com.example.helloworld/R.java file là chất keo kết dính giữa các Activity file MainActivity.java và resource strings.xml. Nó là file được tạo tự động và bạn không nên sửa đổi nội dung trong R.java file. Ví dụ đơn giản về R.java file: −

/* 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;
   }
}

Layout File trong Android

activity_main.xml là một layout file có sẵn trong thư mục res/layout mà được tham chiếu bởi ứng dụng của bạn khi xây dựng giao diện. Bạn sẽ sửa đổi file này khá thường xuyên để thay đổi layout của ứng dụng. Với ứng dụng Hello World, file này sẽ có nội dung sau 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ụ về RelativeLayout đơn giản, mà chúng ta sẽ học trong một chương riêng. TextView là một điều khiển Android để xây dựng GUI và nó có các thuộc tính đa dạng như android:layout_width, android:layout_height mà đang được sử dụng để thiết lập độ rộng và chiều cao của nó. @string tham chiếu tới strings.xml file được đặt trong thư mục res/values. Vì thế, @string/hello_world tham chiếu tới chuỗi Hello World được định nghĩa trong strings.xml.

Chạy ứng dụng Android

Bây giờ, chúng ta thử chạy ứng dụng Hello World! vừa tạo. Giả sử bạn đã tạo AVD trong khi cài đặt. Để chạy ứng dụng từ Eclipse, mở một activity file và nhấn biểu tượng Run Eclipse Run Icon từ thanh công cụ. Eclipse đặt ứng dụng trên AVD của bạn và bắt đầu nó và nếu mọi thứ là ổn thì nó sẽ cho kết quả sau: −

Tạo ứng dụng Hello trong Android

Chúc mừng! Bạn đã phát triển ứng dụng Android đầu tiên. Bạn tiếp tục theo dõi loạt bài để từng bước trở thành một nhà lập trình Android thực thụ.

Tạo ứng dụng Android trên Android Studio

Có nhiều Tool có sẵn để phát triển các ứng dụng Android. Bạn theo link sau để biết cách tạo ứng dụng Hello World trên Android Studio.

Loạt bài hướng dẫn học AngularJS cơ bản và nâng cao của chúng tôi dựa trên nguồn tài liệu của: Tutorialspoint.com

Follow fanpage của team https://www.facebook.com/vietjackteam/ hoặc facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.