Các nền tảng di động rất phong phú với nhiều triển vọng, Android là một nền tảng
khả thi và thú vị cho các nhà phát triển. Loạt bài mới này bắt đầu với một giới
thiệu về Android được thiết kế đặc biệt cho các nhà phát triển Java™ chỉ mới bắt
đầu với lập trình cho điện thoại di động. Tìm hiểu về hệ thống versioning ba lớp
của Android (và tìm hiểu lý do tại sao nó quan trọng), sau đó thiết lập môi trường
phát triển và xây dựng ứng dụng Android đầu tiên.
19 trang |
Chia sẻ: lylyngoc | Lượt xem: 1496 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Di động cho mọi người: Giới thiệu sơ lược về Android, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Di động cho mọi người: Giới
thiệu sơ lược về Android
Khảo sát môi trường lập trình trên Android và xây dựng ứng dụng đầu tiên!
Các nền tảng di động rất phong phú với nhiều triển vọng, Android là một nền tảng
khả thi và thú vị cho các nhà phát triển. Loạt bài mới này bắt đầu với một giới
thiệu về Android được thiết kế đặc biệt cho các nhà phát triển Java™ chỉ mới bắt
đầu với lập trình cho điện thoại di động. Tìm hiểu về hệ thống versioning ba lớp
của Android (và tìm hiểu lý do tại sao nó quan trọng), sau đó thiết lập môi trường
phát triển và xây dựng ứng dụng Android đầu tiên.
Giới thiệu
Về loạt bài này
Sự gia tăng gần đây trong việc sử dụng công nghệ điện thoại di động thật đáng
kinh ngạc ngay cả đối với những người hoạt động trong lĩnh vực công nghiệp này.
Giám đốc điều hành của Apple Tim Cook đã tổng kết những cảm nhận trong một
cuộc phỏng vấn vào tháng 9/2012, như ông đã thảo luận thành công của Apple với
iPad. Bán 67 triệu iPad trong hai năm ngắn ngủi là điều đáng chú ý nhất. Tim Cook
đưa ra con số đó vào bối cảnh lịch sử khi ông lưu ý rằng "chúng tôi đã phải mất 24
năm để bán máy tính Mac, năm năm đối máy nghe nhạc iPod và hơn ba năm đối
với iPhone mới có thể đạt được con số đó." (Xem phần Tài nguyên.)
Nếu iOS đang làm rất tốt thì sau đó Android, nền tảng lấy Java làm trung tâm,
cũng đã giữ tốc độ tăng trưởng. Theo một tuyên bố gần đây của Google, 500 triệu
thiết bị Android được kích hoạt kể từ khi Android được chính thức phát hành trong
năm 2008, và 1,3 triệu thiết bị mới được kích hoạt mỗi ngày. Theo báo cáo, trên
iTunes App Store của Apple và Google Play liệt kê ít nhất 1.400.000 ứng dụng và
hơn 60,000,000,000 lượt tải ứng dụng. (Xem phần Tài nguyên.)
Tất cả những thiết bị di động được kích hoạt có nghĩa là có nhiều cơ hội mới cho
doanh số bán ứng dụng và thị trường ứng dụng cho điện thoại di động cũng được
phát triển. Đối với các nhà phát triển, những người muốn xây dựng các ứng dụng
di động một cách nhanh chóng thì Android là một môi trường tuyệt vời để bắt đầu.
Nếu bạn có thể lập trình bằng Java và các ngôn ngữ JVM khác, thì bạn chỉ cần tập
trung vào việc nghiên cứu cách thức xây dựng ứng dụng và triển khai ứng dụng từ
đó. Tính linh hoạt của Android có nghĩa là bạn có thể dễ dàng áp dụng và thử
nghiệm với các công nghệ mới như HTML5 và PhoneGap. Và nền tảng có mặt
khắp nơi — cùng với Google Play — đảm bảo rằng các ứng dụng của bạn sản xuất
có thể được chia sẻ rộng rãi.
Bài viết đầu tiên này trong loạt bài mới Di động cho mọi người là một giới thiệu
sơ lược về Android. Bắt đầu với tổng quan về hệ thống các phiên bản của Android,
sau đó thiết lập một môi trường phát triển và bắt đầu xây dựng ứng dụng đầu tiên.
Khái quát về Android
Thiết bị Android được phân phối đang có tốc độ tăng trưởng nhanh hơn bất kỳ nền
tảng di động khác, điều đó giúp Android trở thành một sự lựa chọn tuyệt vời trong
hành trình phát triển ứng dụng trên điện thoại di động, đặc biệt là nếu bạn là một
nhà phát triển Java. Một nhược điểm lớn của ứng dụng Android là sự phân mảnh,
trong đó trình bày những thách thức đáng kể cho các ứng dụng thử nghiệm. Thực
tế cho thấy là hầu hết các nhà phát triển ứng dụng gần như không thể kiểm tra một
ứng dụng cho mọi thiết bị Android cho đến các phiên bản hệ điều hành. (Trong
thực tế, làm như vậy theo một cách hiệu quả kinh tế chính là sự phát triển của
ngành công nghiệp dịch vụ.) Phần sau của bài viết sẽ nhìn vào các vấn đề kỹ thuật
liên quan đến việc xuất ra nhiều phiên bản Android, cộng với các công cụ dựa trên
Java để thử nghiệm các ứng dụng Android trên điện thoại di động. Bây giờ, chúng
ta hãy cùng khảo sát qua các phiên bản Android để bạn có thể hiểu và phát triển
ứng dụng trên nền tảng này.
Các phiên bản Android
Trong khi các số phiên bản của Android phiên bản hệ điều hành tuần tự là —1.6,
2.1, 4.2, và v.v.... Các bản phát hành cũng được đặt tên tương tự như các mặt hàng
khác nhau trong một thực đơn tráng miệng hảo hạng: Donut, Eclair, và Jelly Bean.
Khi mọi người ám chỉ Jelly Bean có nghĩa là phiên bản Android 4.2. Phiên bản
Android cũng được mô tả ở cấp độ API, bởi số nguyên tăng dần theo trình tự. Vì
vậy, Android API ở mức 17 đề cập đến Android phiên bản 4.2, còn được gọi là
Jelly Bean.
Không phải chỉ mình bạn nghĩ điều này là không rõ ràng đâu. Tuy vậy, việc hiểu rõ
là rất quan trọng bởi vì ba phương án đặt phiên bản được dùng lẫn lộn.
Hầu hết các nhà phát triển Java phải đảo ngược suy nghĩ cơ bản của họ khi nói đến
việc hỗ trợ các phiên bản Android khác nhau. Nền tảng Java đã nổi danh chủ yếu
như một công nghệ phía máy chủ, nơi mà các giao tiếp với người dùng là thường là
một trang web. Nếu các trang web có thể xem được, độc giả của các trang web đó
không quan tâm phiên bản Java mà ứng dụng của bạn đang chạy trên đó. Tuy
nhiên, với Android, mã nguồn các ứng dụng của bạn lại thực sự an toàn khi chạy
trên các thiết bị mà bạn không có khả năng kiểm soát..
Nhiều người tiêu dùng tiềm năng nâng cấp ứng dụng của bạn lên phiên bản mới
hơn cùng với phiên bản của hệ điều hành Android khi điện thoại cũ của họ không
được sử dụng nữa. Quyết định của bạn trong đó hệ điều hành Android hỗ trợ là rất
quan trọng. Trong khi phiên bản mới nhất của Android là 4.2, khoảng một nửa số
thiết bị Android vẫn hỗ trợ Android 2.3.x. Một ứng dụng được viết để nhằm mục
tiêu cho thiết bị chạy Android 3.1 không thể chạy trên phiên bản mới hơn như 4.2,
và cũng không chạy trên phiên bản trước đó như 2.3. Vì vậy, nó là lý do, nếu bạn
muốn có một phân phối rộng hơn, sự lựa chọn của bạn tốt hơn là hãy nhắm mục
tiêu đến một phiên bản cũ của hệ điều hành.
Một nhược điểm của việc nhằm vào mục tiêu lớn hơn và nền tảng phân phối rộng
rãi hơn là phiên bản mới hơn luôn luôn có các tính năng mới mà bạn muốn áp dụng
cho ứng dụng của mình. Nếu bạn là người may mắn, nhóm phát triển Android sẽ
phát hành thư viện tương thích để bạn có thể sử dụng.
Chạy ứng dụng Android với Eclipse ADT
Như phần đầu tiên giới thiệu tóm tắt về Android, tôi giúp bạn tạo một ứng dụng
Android đơn giản càng nhanh càng tốt. Bạn sẽ sử dụng Android 4.2 và một plugin
mà mọi người yêu thích, được gọi là Công cụ phát triển Android trên Eclipse
(Eclipse Android Development Tools - ADT): Một ứng dụng Hello World dựa trên
ngôn ngữ Java.
Lựa chọn hai cách để thiết lập môi trường phát triển cho Android. Các nhà phát
triển nếu cảm thấy mới khi tiếp cận với Eclipse và Android thì có thể bắt đầu bằng
cách tải về gói ADT (Android Developer Tools). Gói ADT kết hợp với Android
SDK và một phiên bản của Eclipse có các plugin ADT đã được cài đặt. Gói này là
cách nhanh chóng để bắt đầu dễ dàng với Android.
Nếu Eclipse được cài đặt và thiết lập sẵn trên máy tính của bạn, thì bạn có thể tự
tải về và cài đặt Android SDK. Cơ sở Android SDK có chứa các công cụ hệ thống
cấp để tạo điều kiện phát triển với Android. Tuy nhiên, nó thiếu các thư viện
Android thực tế được yêu cầu để phát triển cho một phiên bản Android cụ thể. Sau
khi bạn tải về cơ sở Android SDK cho hệ điều hành của bạn, hãy vào thư mục cài
đặt các công cụ SDK và chạy câu lệnh như Liệt kê 1.
Liệt kê 1. Khởi động Android SDK Manager
~/Development/tools/android/android-sdk-mac_x86/tools$>./android
Câu lệnh này sẽ kích hoạt Android SDK Manager, sẵn sàng cho bạn tải về các
phiên bản khác nhau và các thư viện cho Android và tạo ra các môi trường giả lập
hoặc các thiết thiết bị ảo. Android SDK Manager mở ra một cửa sổ với một danh
sách lớn các tùy chọn để tải về, như trong Hình 1.
Hình 1. SDK Manager
Trong các lựa chọn bên trái, bạn hãy chọn Tools và sau đó chọn Android 4.2 (API
17). Thư mục đó sẽ hiển thị một số tùy chọn. Bạn hãy chọn SDK Platform và file
ảnh ARM EABI v7a System, như trong Hình 2.
Hình 2. Các lựa chọn trong SDK Manager
Bây giờ bạn hãy nhấn nút Install packages và đồng ý với các điều khoản cần thiết;
sau đó để trình quản lý tự động hoàn tất công việc của nó.
Tạo thiết bị giả lập
Tiếp đến, ta hãy tạo một nền tảng giả lập, để có thể chạy thiết bị ảo trên đó và sau
đó bạn có thể chạy ứng dụng của mình. Các thiết bị giả lập phải dành riêng cho
phiên bản Android cụ thể, vậy ta hãy tạo một nền tảng giả lập chạy Android phiên
bản 4.2.
Khởi động SDK manager của bạn một lần nữa nếu bạn đã đóng nó. Nếu các công
cụ SDK Android hoặc các công cụ nền tảng được cập nhật, ta hãy khởi động lại
SDK Manager. Trong thanh thực đơn menu của SDK Manager, bạn hãy chọn
Tools > Manage AVDs để mở một hộp thoại Android Virtual Device Manager
(Trình quản lý thiết bị Android ảo), như Hình 3.
Hình 3. Android Virtual Device Manager
Hộp thoại này liệt kê các giả lập có trên máy tính của bạn. Danh sách giả lập sẽ
không hiển thị thiết bị nào cho đến khi bạn tạo ra một thiết bị mới. Hãy nhấn New
để mở hộp thoại Create a new Android Virtual Device (AVD) (Tạo mới một thiết
bị Android ảo) và bạn có thể định nghĩa mới một giả lập. Trong danh sách drop-
down Target, ta chọn Android version 4.2. Trong mục AVD Name, bạn hãy đặt
tên cho giả lập — tôi sẽ đặt là Android_4.2. Khi bạn sẵn sàng để thử nghiệm ứng
dụng, hãy sử dụng tên này để khởi động giả lập từ dòng lệnh.
Hình 4. Tạo mới một thiết bị Android ảo
Trong Hình 4, bạn thấy có một vài tùy chọn cho AVDs, bao gồm loại thiết bị, các
thiết lập camera, bộ nhớ, và khả năng lưu trữ. Trong trường hợp này, tôi đã chọn
Galaxy Nexus, thiết lập cho nó một thẻ nhớ SD card với 200 MB. Cuối cùng, tôi
chọn tùy chọn Uuse Host GPU (Sử dụng card màn hình thông qua máy tính), để
đạt được hiệu năng cao của thể giả lập này.
Nhấn OK để xem thiết bị ảo mới của bạn được liệt kê trong hộp thoại AVD. Chọn
nó và nhấn Start để mở một hộp thoại với các tùy chọn khởi động. Bây giờ, hãy
giữ các thiết lập mặc định và nhấn Launch. Giả lập này cần một khoảng thời gian
để khởi động, bạn nên đi uống một tách café, hay kiểm tra Facebook, hay cập nhật
Twitter trong lúc chờ đợi.
Hình 5. Một thiết bị Android mới!
Sau một vài phút, một thiết bị mô phỏng (tương tự Hình 5) hiển thị trên màn hình
chủ của bạn, có nghĩa là bạn đã có đầy đủ công cụ để bắt đầu! Bạn đã sẵn sàng để
bắt đầu xây dựng các ứng dụng Android 4.2.
Thiết lập Eclipse ADT
Nếu bạn đã cài đặt sẵn Eclipse rồi thì bạn phải thêm vào plugin Công cụ phát triển
Android (ADT) trước khi bắt đầu.
Trong trình đơn menu của Eclipse, bạn hãy mở Help > Find New Software. Chọn
Add và thêm vào đường dẫn URL cho Plugin ADT: https://dl-
ssl.google.com/android/eclipse/ (Xem Hình 6).
Hình 6. Thêm vào kho plugin ADT
Sau khi tải plugin, bạn hãy làm theo hướng dẫn để cài đặt nó. Cấu hình các plugin
ADT sử dụng SDK mà bạn đã cài đặt. Bây giờ dự án của bạn xây dựng trên nền
tảng Android 4.2 và sử dụng cấu hình giả lập của bạn.
Ứng dụng Android cơ bản
Bây giờ bạn đã có một ứng dụng Hello World cơ bản tương thích bất kỳ thiết bị
Android 4.2. Cuối cùng, bạn muốn tùy chỉnh ứng dụng đó và thêm các chức năng
thú vị hơn. Còn bây giờ, tôi muốn phân tích qua một ứng dụng Android.
Chuyên JVM của Android
Hãy quay trở lại với Eclipse IDEE. Trong thư mục src trong dự án của bạn, tìm đến
file .java duy nhất. Nếu bạn giữ tất cả các giá trị mặc định, tập tin này được đặt tên
là MainActivity. Các lớp Activity của một ứng dụng di động Android, tương tự
như servlet cho các ứng dụng Java phía máy chủ. Mỗi vòng đời của Activity giống
như vòng đời của một Java applet (nếu bạn còn nhớ về Java applet).
Ứng dụng Hello World là cơ bản, vì vập Activity (hoạt động) của nó cũng rất đơn
giản. Đầu tiên, lớp kế thừa từ lớp Activity của Android. Trỏ vào các Activities
thông qua phương thức onCreate, được bắt đầu bởi nền tảng này khi ứng dụng của
bạn được tạo ra. Phương thức quan trọng trong phương pháp đó là gọi
setContentView. Liệt kê 3 cho thấy lớp MainActivity mặc định.
Liệt kê 3. MainActivity
package com.example.hello;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected 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;
}
}
Trong Liệt kê 3, hàm setContentView hiển thị giao diện layout activity_main, đó là
tên của layout mà bạn đã thấy trong Eclipse khi lần đầu tiên bạn mở dự án. Tên này
tương ứng với các tập tin activity_main.xml có trong thư mục res/layout. Mở tập
tin này để xem ứng dụng của bạn dưới dạng đồ họa. Trong tab dưới bên trái của
giao diện là một lựa chọn để xem các tập tin XML thô. Kích vào tùy chọn để xem
các tập tin thô, trông giống như Liệt kê 4.
Liệt kê 4. Một khai báo giao diện layout thô
<RelativeLayout xmlns:android=""
xmlns:tools=""
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="@string/hello_world" />
Các Android Views được định nghĩa trong các file XML. Mỗi View có một giao
diện layout mà bạn có thể thêm vào các widgets như buttons hay text fields. Hiện
tại, các ứng dụng mẫu có RelativeLayout với một widget: một TextView. Nếu bạn
nhìn kỹ vào widget, bạn sẽ thấy một dòng mã được thiết lập để chỉ tới:
@string/hello_world.
Biến (variable) là một con trỏ đến một chuỗi giá trị thực, mà bạn có thể tìm thấy
trong file res/values/strings.xml. Hãy mở file này ra. Để xem file XML thô, hãy
kích vào tab strings.xml ở vùng dưới bên trái.
Liệt kê 5. File strings.xml
Hello 4.2
Hello world!
Settings
Chuỗi thứ hai được định nghĩa trong Liệt kê 5 liên kết biến hello_world với chuỗi
Hello World!.
Tập tin Android manifest
Bây giờ bạn đã thấy ba yếu tố quan trọng của một ứng dụng Android được liên kết
với nhau: Activity, Layout, và các tập tin Resource (Tài nguyên). Khi ứng dụng
của bạn khởi động, hệ điều hành Android gọi phương thức onCreate của
MainActivity. Phương thức onCreate sau đó tải lên giao diện layout, và layout lấy
một số giá trị từ một tập tin tài nguyên XML. Trong trường hợp này, kết quả là một
giao diện người dùng đơn giản với dòng chữ "Hello World!"
Nhưng làm cách nào mà thiết bị biết một Activity cần gọi? Đó là lúc cần tới file
AndroidManifest.xml. Hãy xem file này trong thư mục gốc trong dự án của bạn.
Kích vào nó và Eclipse load một giao diện tùy chỉnh tiện lợi với một vài tab ở góc
dưới bên trái của giao diện. Nhấp vào tab có nhãn AndroidManifest.xml để hiển thị
các dòng XML thô như trong Liệt kê 6.
Liệt kê 6. File AndroidManifest.xml
<manifest xmlns:android=""
package="com.example.hello"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.hello.MainActivity"
android:label="@string/app_name" >
Mục đích của tập tin này là để giải thích ứng dụng của bạn với một thiết bị cơ bản.
Nó bao gồm một khối XML được gọi là application, nó giúp xác định các activity.
MainActivity của bạn được tham chiếu và một action (hành động) được xác định
cùng với một category. action sẽ nói cho thiết bị biết Activity cần khởi động.
Trong trường hợp này, action mô tả những Activity của bạn là MAIN.
Các khai báo quan trọng khác trong tập tin AndroidManifest.xml bao gồm các
phần uses-sdk, trong đó nói rằng phiên bản min (nhỏ nhất) là 8 (có nghĩa là
Android 2.2.x) và Target là 17, còn được gọi là Android 4.2. Tôi sẽ giải thích chi
tiết trong một bài viết sau. Còn hiện tại, tôi có đủ điều kiện để nói rằng nền tảng
Android cung cấp các thư viện tương thích với các phiên bản trước đó..
Kết luận
Ứng dụng Android đầu tiên là một khởi đầu tốt. Trong quá trình này, bạn đã học
được một số điều quan trọng về Android — và phát triển ứng dụng cho điện thoại
di động nói chung. Bạn đã cài đặt Android SDK, tải về phiên bản Android 4.2, và
tạo ra một AVD (hay trình giả lập) để mô phỏng các hoạt động của ứng dụng của
bạn trên một thiết bị. Nếu bạn sử dụng Eclipse, IDE của bạn bây giờ để cấu hình,
xây dựng và triển khai các ứng dụng Android cho AVD thì bạn có thể lựa chọn cho
phù hợp. Tất cả các thiết lập này là cần thiết để có thể thực hiện được bất cứ điều
gì với Android.
Bạn cũng đã thấy cách mà một ứng dụng Android đơn giản được cấu thành, với
các lớp Activity đảm nhiệm hầu hết các công việc trong khi AndroidManifest.xml
định nghĩa cho các thiết bị cơ bản. Và bạn đã thấy kết quả: một ứng dụng Hello
World đơn giản, chỉ cần chờ đợi để được tùy chỉnh.
Lần tới chúng ta sẽ đi sâu hơn với Android. Trong khi chờ đợi, tôi khuyên bạn nên
làm quen và sử dụng với các thiết lập ứng dụng mà bạn có cho đến giờ. Hãy thư
thêm một số widget hoặc thay đổi các giá trị của các khía cạnh trong các tập tin
XML của bạn, nếu bạn muốn tạo một ứng dụng Hello World mới không theo mặc
định.