Chủ Nhật, 12 tháng 9, 2010

Lập trình Android 03: Viết chương trình Android đầu tiên


  • Bước 1: Dựng môi trường - Cài đặt JDK
    • Cài đặt JDK và thiết lập biến môi trường giống như việc dựng môi trường lập trình Java.
    • Tham khảo cách cài đặt JDK và dựng biến môi trường ở đây(dành cho Windows OS), đây(dành cho ubuntu) - riêng dành cho máy MAC thì mình chưa thử nên không dám comment gì he he
    • Nếu máy tính đang dùng đã cài đặt JDK rồi thì bỏ qua bước này, tiếp tục tới bước 2.
  • Bước 2: Dựng môi trường - Cài đặt & tích hợp Android SDK với Eclipse.
    • Làm theo hướng dẫn cài đặt và tích hợp Android SDK với eclipse cho hệ điều hành ở đây
  • Bước 3: viết chương trình adroid đầu tiên, chương trình Hello, World
    • Xem hướng dẫn tạo chương trình Hello, World với eclipse tại đây
    • Một số lưu ý:

      • Project name - Tên của project sẽ hiển thị trong eclipse khi ta lập trình
      • Package name - Tên của gói(package) sẽ chứa chương trình/file mã nguồn Java(Java coder chắc không lạ với cách thức này)
      • Activity name - Tên của title trên mỗi activity của ứng dụng. Có thể coi activity như là một view/screen, mục đích của nó là hiển thị.
      • Application name - Là tên của ứng dụng hiển thị trên màn hình của android mobile.
      • src folder - chứa các file mã nguồn .java
      • R.java là file tự sinh bởi ADT lưu giữ các tên của views, constants,... được dùng trong dự án. Không nên thay đổi nội dung của file này. 
      • Android Library chứa file có tên là android.jar. File này chứa tất cả các lớp(classes) được sử dụng trong ứng dụng Android.
      • res folder - chứa tất cả các tài nguyên dùng cho ứng dụng Android. Ví dụ như các file ảnh có định dạng .png dùng làm icon của ứng dụng.
      • layout folder - chứ một file XML được dùng để định dạng/thiết kế giao diện cho ứng dụng Android. XML file lưu danh sách các string constants.
      • AndroidManifest.xml filelà một file cấu hình của ứng dụng nó chứa các thông tin chi tiết của ứng dụng nư số activity, thông tin về phiên bản,...
    • Khung mã nguồn của chương trình Hello World như sau:
    • package com.lananhdo.droid1;
      
      import android.app.Activity;
      import android.os.Bundle;
      
      public class HelloAndroid extends Activity {
          /** Called when the activity is first created. */
          @Override
          public void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.main);
          }
      }
  • Modify mã nguồn thành như dưới đây
  •  package com.lananhdo.droid1;
    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.TextView;
    public class DroidActivity extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            TextView tv = new TextView(this);
            tv.setText("Hello, Android. How are you today?");
            setContentView(tv);
           // setContentView(R.layout.main);
        }
    }
  • Biên dịch chương trình thành công, trình giả lập sẽ hiển thị như sau:
Vậy là xong, chương trình Android đầu tiên đã...thành công tốt đẹp. Chúng ta cũng đã có cái nhìn tổng quan về cấu trúc các thư mục trong một Android Project. Hy vọng đây sẽ là bước đệp tiếp theo để chinh phục nền tảng Android hấp dẫn.


      Thứ Hai, 23 tháng 8, 2010

      Thứ Hai, 16 tháng 8, 2010

      Android 01: Kiến trúc nền tảng Android

      Ban đầu tôi định viết một bài về Android bao gồm các nội dung theo flow là What-Where-When-Why-How. Tôi đã đặt tay gõ rồi xóa đi vài lần. Lý do xóa là vì thấy những điều mình viết thật nông cạn và lan man. Thực ra thì toàn nói lại những gì người ta đã nói. Như vậy thì thật không cần thiết(right?).

      Để biết Android là gì, bạn có thể đọc ở đây

      Để biết Android đến từ đâu, từ bao giờ, bạn có thể đọc ở đây

      Trong entry này, cái mà tôi quan tâm nhất chỉ là kiến trúc Android mà thôi. Kiến trúc Android gồm 4 phần chính, mô hình dưới đây sẽ cho ta cái nhìn tổng quan về kiến trúc Android. Nhân của Android được phát triển dựa vào Kernel Linux 2.6. Mỗi tầng trong kiến trúc Android hoạt động dựa vào tầng bên dưới nó.
      • Kernel Linux layer:
        • Dựa trên Kernel Linux version 2.6 bởi nó cung cấp các trình điều khiển các thiết bị phần cứng(driver), quản lý tiến trình, quản lý tài nguyên, bảo mật,... như sau:
          • Security system
          • Memory management
          • Process management
          • Network stack 
          • Driver model.
      • Libraries
        • Là các thư viện được viết bằng ngôn ngữ C/C++ sẽ được các developer phát triển ứng dụng android thông qua tầng Android Framework. Có thể kể ra đây một số thư viện quen thuộc với các lập trình viên như: 
          • Media Libraries – mở rộng từ PacketVideo’s OpenCORE. Hỗ trợ nhiều định dạng video và image phổ biến: MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG
          • Surface Manager – quản lý việc hiển thị và kết hợp đồ họa 2D và 3D.
          • LibWebCore – dùng webkit engine cho việc render trình duyệt mặc định của HDH Android browser và cho dạng web nhúng (như HTML nhúng)
          • OpenGL|ES – thư viện đồ họa 2D và 3D
          • SQLite – quản lý database của ứng dụng
      • Runtime Android
        •  gồm một tập hợp các thư viện Java Core.
        • Máy ảo Dalvik thực thi các file định dạng .dex (Dalvik Excutable)
        • Mỗi ứng dụng Android chạy trên tiến trình riêng của máy ảo Dalvik. Dalvik được viết để chạy nhiều máy ảo cùng một lúc một cách hiệu quả trên cùng một thiết bị.
      • Application Framework
        • Google xây dựng cho các developer để phát triển các ứng dụng của họ trên Android chỉ bằng cách gọi các API.
          • View UI - để xây dựng layout của ứng dụng bao gồm: list view, text field, button, dialog, form …
          • Content Providers - cho phép các ứng dụng truy cập dữ liệu từ các ứng dụng khác hoặc để chia sẻ dữ liệu của riêng ứng dụng.
          • Resource Manager - cung cấp cách thức truy cập đến non-code resources như các asset, graphic, image, music, video …
          • Notification Manager - cho phép tất cả các ứng dụng hiển thị thông báo của mình trên hệ điều hành.
          • Activity Manager - quản lý vòng đời của các ứng dụng.
      • Applications 
        • Là các ứng dụng mà lập trình viên phát triển như Browser, Media,...

      Chỉ cần dành ra khoảng 15 phút để xem clip dưới đây thôi, ta sẽ có được cái nhìn tổng quan về kiến trúc của Android.
       

      Để viết ứng dụng Android ta chỉ cần tập trung vào tầng Application Framework các tầng khác có thể biết sơ sơ cũng được. he he

      Nếu vẫn muốn đọc thêm nữa về kiến trúc Android, bạn có thể click vào đây

      Thứ Sáu, 6 tháng 8, 2010

      Welcome!

      Chào bạn,

      Chào mừng bạn đã (tình cờ)ghé thăm blog của tôi.

      Mục đích của tôi khi viết blog là...rèn luyện kỹ năng viết, kỹ năng bày tỏ, diễn đạt. Tôi mới bắt đầu viết blog và cũng không(chưa) có ý định public blog của mình. Vì vậy mà blog này như là một tệp note lại những suy nghĩ, cảm xúc, nó còn có tác dụng nhắc nhở tôi làm những việc mà tôi dự định, những việc mà tôi muốn làm. Ví dụ như đọc một cuốn sách và viết một bài review về cuốn sách đó chẳng hạn.

      Tài chính và Công nghệ thông tin là hai chủ đề mà tôi sẽ hướng tới. Đây là hai chủ đề mà tôi thấy mình có hứng thú nhất. Tôi thích IT, vì đó cũng là nghề nghiệp, công việc của tôi. Tài chính là vấn đề mà tôi rất quan tâm và tôi cũng chắc không chỉ có mình tôi mới quan tâm tới vấn đề này. Thực lòng mà nói thì tôi cũng không có nhiều kinh nghiệm hay trải nghiệm gì nhiều nhưng nếu không viết về nó để tạo động lực thì chắc tôi sẽ không tiến bộ.

      Blog này là nơi tôi sẽ ghi lại những kinh nghiệm, những cảm xúc và trải nghiệm của tôi về cuộc sống. Có lẽ nhu cầu chia sẻ để được chia sẻ[từ các comment của các bạn] là một nhu cầu tự nhiên của con người, trong đó có tôi. Tôi luôn thấy mình trẻ, đôi khi tôi nghĩ về tương lai, khi đó tôi sẽ là một bà lão nhưng điều tôi muốn là tôi sẽ trở thành một bà lão có tâm hồn trẻ trung và hài hước. Blog là của riêng tôi, hiện tại tôi chỉ muốn nó là của tôi nhưng tôi cũng hiểu rằng chẳng có gì là riêng tư tuyệt đối trên internet. Vì vậy, tôi cứ nên viết một lời chào. Chào bạn!

      Hy vọng sẽ học hỏi và trao đổi được với các bạn trong tương lai.