D:\Student\Curriculum\Android\Lap trinh tren di dong tren Android Tieng Viet

I. CÀI ĐẶT

1)2)

  • Documents: là Javadoc mô tả hoạt động, phương thức và lớp (không thể thiếu)
  • Sample: code mẫu
  • SDK Platform: tương đương với từng phiên bản
  • Google API: phát triển phần mềm liên quan đến dịch vụ của Google (như Google Map liên quan đến GPS)

3) Emulator

  • ADV (Android Virtual Device) là máy ảo phát triển app.

II. TÍNH NĂNG CẦN BIẾT

1. Hiện cửa sổ Debug để dễ quan sát

  • Window -> Open Perspective -> Debug

2. File Explorer giúp quản lý file dễ dàng

  • Window -> Show View -> Others -> Android -> File Explorer

3. Device giúp quản lý thiết bị

  • Window -> Show View -> Others -> Android -> Device

II. MỘT SỐ THỦ THUẬT TRONG ANDROID VÀ ECLIPSE

1. Hiển thị tiếng Việt

Window -> Preferences -> General -> Workspace. Trong Workspace phần Text File Encoding chọn Other -> UTF-8

2. Tự động sổ code

– Tổ hợp phím kinh điển Ctrl + Space

3. Comment

  • Ctrl + “/”: tự động thêm cụm “//” vào đầu dòng (ko tiện lắm).
  • Ctrl + Shift + “/“: tự động thêm “/* */” vào cụm được bôi đen.
  • Ctrl + Shift + “\”: tự động bỏ “/* */” vào cụm được bôi đen.

4. Overide

– Ghi đè phương thức của lớp cha với Source -> Override/Implement Method. Nhiều người bị lỗi vì gõ thiếu chữ s.

@Override 
 public boolean onCreateOptionsMenu(Menu menu) { 

 }

BÀI 1.

I. Kiến thức yêu cầu cần thiết

-Biết Java căn bản:

  • Thế nào là class, package…
  • Ý nghĩa các từ khóa: public, private, protected,…
  • Thành thạo các lệnh cơ bản: if, for(), switch(), while(), …
  • Biết sử dụng các lệnh: Integer.parseInt() hay String.valueOf()…
  • Kiến thức về gói:  java.util (gói hỗ trợ các lớp mạnh nhất), java.io, java.net…

– Nên sử dụng Eclipse vì có nhiều tính năng hỗ trợ hơn Netbeans.

– Sách nên dùng (dành cho Beginner):

  • Unlocking Android (Giải thích rõ ràng hơn, nên đọc trước)
  • Professional Android Application Development (Code nhiều, giải thích ít, tham khảo các đoạn code lập trình)

II. Hiểu các thành phần trong 1 ứng dụng Android

1. Activity: hiểu một cách đơn giản thì Activity là nền của 1 ứng dụng. Khi khởi động 1 ứng dụng Android nào đó thì bao giờ cũng có 1 main Activity được gọi, hiển thị màn hình giao diện của ứng dụng cho phép người dùng tương tác.

2.Service: thành phần chạy ẩn trong Android. Service sử dụng để update dữ liệu, đưa ra các cảnh báo (Notification) và không bao giờ hiển thị cho người dùng thấy.

3.Content Provider: kho dữ liệu chia sẻ. Content Provider được sử dụng để quản lý và chia sẻ dữ liệu giữa các ứng dụng.

4.Intent: nền tảng để truyền tải các thông báo. Intent được sử dụng để gửi các thông báo đi nhằm khởi tạo 1 Activity hay Service để thực hiện công việc bạn mong muốn. VD: khi mở 1 trang web, bạn gửi 1 intent đi để tạo 1 activity mới hiển thị trang web đó.

5.Broadcast Receiver: thành phần thu nhận các Intent bên ngoài gửi tới. VD: bạn viết 1 chương trình thay thế cho phần gọi điện mặc định của Android, khi đó bạn cần 1 BR để nhận biết các Intent là các cuộc gọi tới.

6.Notification: đưa ra các cảnh báo mà không làm cho các Activity phải ngừng hoạt động.

Activity, Service, Broadcast Receiver và Content Provider mới là những thành phần chính cấu thành nên ứng dụng Android, bắt buộc phải khai báo trong AndroidManifest (tham khảo bài 2 có giới thiệu đầy đủ về file này).

III. Vòng đời ứng dụng Android

1.Foreground process: là process của ứng dụng hiện thời đang được người dùng tương tác.
2.Visible process: là process của ứng dụng mà activity đang hiển thị đối với người dùng (onPaused() của activity được gọi).
3.Service process: là Service đang running.
4.Background process: là process của ứng dụng mà các activity của nó ko hiển thị với người dùng (onStoped() của activity được gọi).
5.Empty process: process không có bất cứ 1 thành phần nào active.

Theo chế độ ưu tiên thì khi cần tài nguyên, Android sẽ tự động kill process, trước tiên là các empty process.

IV. Activity

Activity là thành phần quan trọng nhất, đóng vai trò chính. HĐH Android quản lý Activity theo dạng stack, khi được khởi tạo, nó được xếp lên đầu và trở thành running activity, các Activity trước đó sẽ bị tạm dừng.

Activity bao gồm 4 state:

  • active (running): Activity đang hiển thị trên màn hình (foreground).
  • paused: Activity vẫn hiển thị (visible) nhưng không thể tương tác (lost focus). VD: một activity mới xuất hiện hiển thị giao diện đè lên trên activity cũ, nhưng giao diện này nhỏ hơn giao diện của activity cũ, do đó ta vẫn thấy được 1 phần giao diện của activity cũ nhưng lại không thể tương tác với nó.
  • stop: Activity bị thay thế hoàn toàn bởi Activity mới sẽ tiến đến trạng thái stop
  • killed: Khi hệ thống bị thiếu bộ nhớ, nó sẽ giải phóng các tiến trình theo nguyên tắc ưu tiên. Các Activity ở trạng thái stop hoặc paused cũng có thể bị giải phóng và khi nó được hiển thị lại thì các Activity này phải khởi động lại hoàn toàn và phục hồi lại trạng thái trước đó.

– Biểu đồ miêu tả Activity state

Capture

– Vòng đời của Activity: 

  • Entire lifetime: Từ phương thức onCreate( ) cho tới onDestroy( ) 
  • Visible liftetime: Từ phương thức onStart( ) cho tới onStop( ) 
  • Foreground lifetime: Từ phương thức onResume( ) cho tới onPause( )

Khi xây dựng Actitvity cho ứng dụng cần phải viết lại phương thức onCreate( ) để thực hiện quá trình khởi tạo. Các phương thức khác có cần viết lại hay không tùy vào yêu cầu lập trình.

V. XML trong Android

– Ngoài các lớp được viết trong *.java còn sử dụng XML để thiết kế giao diện. Có thể thiết kế giao diện theo ý muốn mà không cần đụng tới code XML, tuy nhiên, sử dụng XML sẽ đơn giản công việc đi rất nhiều, giúp chỉnh sửa ứng dụng sau này trở nên dễ dàng.

VI. Một số thành phần cơ bản trong Android

1. Các layout

– Quản lý các thành phần giao diện theo 1 trật tự nhất định. Layout dùng để thiết kế giao diện cho nhiều độ phân giải. Nên kết hợp nhiều layout đẻ tạo ra giao diện mong muốn.

  • FrameLayout: Layout đơn giản nhất, thêm các thành phần con vào góc trên bên trái của màn hình.
  • LinearLayout: thêm các thành phần con theo 1 chiều nhất định (ngang hoặc dọc). Đây là layout được sử dụng nhiều nhất.
  • RelativeLayout: thêm các thành phần con dựa trên mối quan hệ với các thành

    phần khác hoặc với biên của layout.

  • TableLayout: thêm các thành phần con dựa trên 1 lưới các ô ngang và dọc.
  • AbsoluteLayout: thêm các thành phần con dựa theo tọa độ x, y.

2. XML unit

– Ví dụ:

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/andro
id" 
 android:orientation="vertical" 
 android:layout_width="fill_parent" 
 android:layout_height="fill_parent" 
 > 
 <EditText 
 android:id="@+id/edit_text" 
 android:layout_width="fill_parent" 
 android:layout_height="wrap_content" 
 android:hint="@string/edit_hint" 
 /> 
 <TextView 
 android:id="@+id/text_view" 
 android:layout_width="fill_parent" 
 android:layout_height="wrap_content" 
 android:textColor="@color/text_color" 
 android:textSize="28px" 
 android:typeface="monospace" 
 /> 
</LinearLayout>
  • Edit Text: dùng gõ xâu ký tự.
  • Text View: hiển thị xâu ký tự.
  • orientation: chiều sắp xếp của 2 thành phần con (là dọc)
  • layout_width, layout_height các bạn có thể

    cho giá trị bằng

    • “fill_parent” có chiều rộng phủ đầy thành phần cha
    • “wrap_content”

      chỉ vừa bao đủ nội dung

  • id – khai báo id để lấy về trong code
  • hint – hiện ra nội dung mờ khi Edit Text trống, chưa nhập gì cả.
  • “@string/edit_hint” thông báo lấy trong file

    strings.xml xâu có tên là edit_hint

  • textColor của Text View thì thông báo đoạn ký tự sẽ được hiển thị với màu

    lấy trong file colors.xml

  • textSize chỉ ra cỡ chữ bằng 28 pixel
  • typeface chỉ ra 

    kiểu chữ là monospace

 

 

CODE MẪU

1. Edit Text

  • File activity_main.xml
<LinearLayout 
 android:orientation="vertical" 
 android:layout_width="fill_parent" 
 android:layout_height="fill_parent" 
 > 
 <EditText 
 android:id="@+id/edit_text" 
 android:layout_width="fill_parent" 
 android:layout_height="wrap_content" 
 android:hint="@string/edit_hint" 
 /> 
 <TextView 
 android:id="@+id/text_view" 
 android:layout_width="fill_parent" 
 android:layout_height="wrap_content" 
 android:textColor="@color/text_color" 
 android:textSize="28px" 
 android:typeface="monospace" 
 /> 
</LinearLayout>
  • Nội dung hint: res / strings.xml
<resources> 
 <string name="hello">Hello World, Example!</string> 
 <string name="app_name">Example 1</string> 
 <string name="edit_hint">Enter the work here</string> 
</resources>
  • Màu chữ  values / New / Android XML File / corlors.xml
<resources> 
 <color name="text_color">#ff3300</color> 
</resources>

(Có thể xài trực tiếp: android:textColor=”#ff3300″, nhưng sau này có chỉnh sửa, phải tìm code mất thời gian, nên tạo file riêng corlors.xml trong values)