Di động cho mọi người: Giới thiệu sơ lược về Android

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.

pdf19 trang | Chia sẻ: lylyngoc | Lượt xem: 1496 | Lượt tải: 1download
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.
Tài liệu liên quan