1. Trang chủ
  2. » Luận Văn - Báo Cáo

ĐỒ ÁN TỐT NGHIỆP XÂY DỰNG ỨNG DỤNG NGHE NHẠC CHO ANDROID FULL

71 8,1K 97

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 71
Dung lượng 4,73 MB

Nội dung

Đây là bộ đồ án mình làm về chủ đề: Tìm hiểu về hệ điều hành android và xây dựng ứng dụng nghe nhạc cho android. Bài đồ án được đánh giá 9 điểm trong buổi bảo vệ... Have fun !!!

Trang 1

Nhận xét của giáo viên hướng dẫn

Nhận xét của giáo viên phản biện 1

Trang 2

Nhận xét của giáo viên phản biện 2

Trang 3

LỜI CẢM ƠN

Trang 4

MỤC LỤC

Trang 5

ĐỒ ÁN TỐT NGHIỆP

TÌM HIỂU VỀ LẬP TRÌNH ANDROID VÀ XÂY DỰNG

ỨNG DỤNG NGHE NHẠC TRÊN ANDROID

PHẦN 1: TÌM HIỂU VỀ LẬP TRÌNH ANDROID

I Giới thiệu

Trang 6

Android – hệ điều hành cho điện thoại di động được phát triển bởi Googlengày càng trở nên phổ biến với việc các hãng điện thoại liên tục ra mắt các mẫuđiện thoại sử dụng Android.

Giao diện màn hình khoá(Android 2.3) Giao diện màn hình chính(Android 2.3)

Android được xây dựng trên nhân Linux và được phân phối miễn phí.Không giống như Windows Mobile và Apple Iphone, tuy cả hai đều cung cấpmột môi trường phát triển ứng dụng phong phú và dễ tiếp cận nhưng luôn có sự

ưu tiên cho các ứng dụng mặc định có sẵn của hệ điều hành(native application).Với Android, mọi ứng dụng đều được viết trên cùng một tập API, thế nênkhông có sự phân biệt giữa các ứng dụng mặc định và các ứng dụng của bên thứ

ba Người dùng hoàn toàn có thể thay thế mọi ứng dụng mặc định bằng các ứngdụng yêu thích của mình, thậm chí ngay cả màn hành thực hiện cuộc gọi vàmàn hình nhà (home screen)

Các nhà phát triển viết ứng dụng cho Android dựa trên ngôn ngữ Java Sự ramắt của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành lập của liên

Trang 7

minh thiết bị cầm tay mã nguồn mở., bao gồm 78 công ty phần cứng, phần mềm

và viễn thông nhằm mục đích tạo nên một chuẩn mở cho điện thoại di độngtrong tương lai

Google cung cấp hầu hết các mã nguồn của Android theo bản cấp phépApache

II Các ứng dụng có sẵn trong Android

Một điện thoại Android thông thường sẽ đi kèm với một vài ứng dụng đãđược cài đặt sắn, bao gồm:

- Một trình email tương thích với Gmail

- Chương trình quản lý tin nhắn SMS

- Chương trình quản lý thông tin cá nhân, bao gồm cả lịch làm việc, danh bạ,

và được đồng bộ hoá với dịch vụ của Google

- Phiên bản thu gọn của Google Map cho điện thoại, bao gồm StreetView, tìmkiếm địa điểm, chỉ đường, tình trạng giao thông,…

- Trình duyệt web dựa trên nhân WebKit

- Chương trình tán gẫu (chat)

- Trình đa phương tiện (chơi nhạc, xem ảnh,…)

- Android Marketplace – cho phép người dùng tải về và cài đặt các ứng dụngmới

- Tất cả các ứng dụng có sẵn đều được viết bằng ngôn ngữ Java và sử dụngAndroid SDK

- Các dữ liệu về thông tin người dùng được các ứng dụng có sẵn sử dụng – nhưthông tin về danh bạ - vẫn hoàn toàn có thể được sử dụng bởi các ứng dụngcủa bên thứ ba

- Tương tự vậy, ứng dụng của bạn hoàn toàn có thể xử lý các sự kiện như cócuộc gọi đến, nhận một tin nhắn mới,… thay cho các ứng dụng có sẵn

III Truy cập phân cứng

Android bao gồm thư viện các API giúp đơn giản hóa tối đa việc sử dụng phần cứng của thiết bị Điều đó đảm bảo rằng bạn không cần phải bận tâm nhiều đến việc ứng dụng của mình có thể chạy như mong đợi trên nhiều thiết bị khác nhau hay không, miễn là thiết bị đó có hỗ trợ Android

Trang 8

Android SDK bao gồm các API cho phần cứng như: GPS, camera, kết nối mạng, Wi-Fi, Bluetooth, con quay gia tốc, màn hình cảm ứng, quản l{ năng lượng,

IV Dịch vụ chạy nền

Android hỗ trợ các ứng dụng và dịch vụ được thiết kể để chạy ẩn Do kích thước nhỏ của màn hình điện thoại nên tại một thời điểm chỉ có thể thấy được một ứng dụng Dịch vụ chạy nền giúp tạo ra các thành phần ứng dụng “vô hình” để thực hiện tự động một tác vụ nào đó mà không cần phải có sự tương tác của người dùng Ví dụ như một dịch vụ chạy nền có chức năng chặn cuộc gọi đến đối với các

số điện thoại có trong “black list” chẳng hạn

VI Hệ thống thông báo (Notifications)

Thông báo là cách thức tiêu chuẩn mà ở đó thiết bị báo cho người dùng đã có một sự kiện nào đó xảy ra Chẳng hạn như có cuộc gọi tới, máy sắp hết pin,… Sử dụng các API bạn có thể cho ứng dụng của mình thông báo đến người dùng bằng

âm thanh, rung, hoặc thậm chí là cả đèn LED của thiết bị

VII Kiến trúc ứng dụng (Application Architecture)

Ý tưởng của Android đó là khuyến khích việc tái sử dụng lại các thành phần đã

có, cho phép ứng dụng của bạn có thể chia sẻ Activity, Service, Dữ liệu với các ứng dụng khác trong giới hạn truy cập do bạn đặt ra

Trang 9

Một ví dụ đơn giản: bạn cần làm một ứng dụng chụp ảnh hàn quốc, về cơ bản ứng dụng này sẽ làm hai nhiệm vụ: một là chụp ảnh, hai là ghép, chỉnh sửa ảnh Thay vì phải tự xây dựng chức năng chụp ảnh, bạn sẽ sử dụng lại chức năng chụp ảnh có sẵn trong ứng dụng chụp ảnh của Android Việc này giúp bạn dễ dàng và mau chóng xây dựng được những ứng dụng nhiều tính năng và sử dụng hiệu quả tài nguyên máy

Những dịch vụ dưới đây là nền tảng kiến trúc của mọi ứng dụng Android, đây

là khuôn khổ cho bạn xây dựng ứng dụng của riêng mình:

VIII Các thư viện của Android

Android cung cấp các gói API để phát triển ứng dụng Danh sách các gói core API dưới đây giúp cho bạn có cái nhìn tổng quát về những gì được hỗ trợ sẵn, tất

cả các thiết bị chạy Android đều phải hỗ trợ được tối thiểu các API này

android.util

 Activity Manager

Gói api lõi, chứa các class cấp thấp như containers, string formatters, XML parsing

Trang 11

android.webkit

 Activity Manager

Cung cấp một WebView control trên nền webkit để có thể nhúng vào ứng dụng, cùng với các api điều khiển cơ bản như stop, refresh, cookie manager,…

IX Ba ứng dụng trong Android

Hầu hết các ứng dụng trong Android sẽ thuộc vào một trong ba loại sau đây:

Intermittent Activity

 Activity Manager

Ứng dụng loại này vừa nhận tương tác của người dùng, và vẫn có thể tiếp tục hoạt động ngầm khi bị ẩn đi Có thể đưa ra các thông báo cho người dùng khi cần thiết trong lúc đang bị ẩn Các ứng dụng loại này có thể kể đến như: ứng dụng nghe nhạc, ứng dụng tán gẫu (chat),…

Đối với các ứng dụng lớn và phức tạp, khó để có thể cho vào một loại duy nhất, và thường thì các ứng dụng này bao gồm có khi cả 3 loại trên Điều quan trọng là khi bạn xây dựng ứng dụng cho mình hãy chú { đến 3 loại trên để đưa ra thiết kế phù hợp

Dưới đây là một số lưu { khi xây dựng ứng dụng thuộc 3 loại trên:

Trang 12

được chu kz sống, nên điều này đồng nghĩa với việc bạn cần phải lưu lại trạng thái của ứng dụng trước khi nó chuyển từ foreground sang background, và trả lại trạng thái phù hợp trong trường hợp ngược lại

Background Services

Với ứng dụng loại này, cần chú { là nó sẽ cần rất ít các tương tác trực của người dùng, có khi hoàn toàn không cần Thay vào đó ứng dụng sẽ lắng nghe các thông điệp, sự kiện phát sinh bởi hệ thống, phần cứng, hoặc từ các ứng dụng khác

Bạn có thể tạo ra một ứng dụng hoàn toàn “vô hình”, nhưng tốt hơn là nên cung cấp một giao diện cơ bản để người dùng có thể hiệu chỉnh các thiết lập, dừng hoặc thoát hoàn toàn ứng dụng Intermittent Activities

Ứng dụng loại này là sự kết hợp giữa một Foreground Activities và một Background Service, vậy nên điều cơ bản là ứng dụng cần phải nhận biết được tìnhtrạng hiện tại của mình (foreground/background) để đưa ra các xử lý phù hợp Cũng nên lưu ý đến việc gởi các thông báo (có thể thông qua hệ thống

notification của Android) đến người dùng khi ứng dụng đang chạy ngầm vào

có đuôi apk là file ứng dụng của Android )

Trong một thư mục project, có một số thành phần (file, thư mục con) được tạo

ra mặc định, còn lại phần lớn thì sẽ được tạo ra sau nếu cần trong quá trình phát triển ứng dụng Dưới đây liệt kê cấu trúc đầy đủ của một thư mục project:

src/

 Activity Manager

Chứa toàn bộ source code (file java hoặc aidl)

Trang 14

không sử dụng file name để định danh, mà sẽ được định danh theo quy định bên trong file xml đó (xem thêm về lớp R ở phần sau)

xmlns:android như là một quy định để chuẩn hóa cấu trúc file manifest Dưới đây là một file Manifest điển hình:

Trang 15

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.my_domain.my_app" >

[ manifest nodes ]

</manifest>

Manifest bao gồm nhiều thẻ định nghĩa các thành phần của ứng dụng, các thiết lập về bảo mật, các lớp test,… Dưới đây là danh sách các thẻ có thể xuất hiện trong file manifest:

<application>

 Activity Manager

Một file manifest chỉ có thể chứa một thẻ application Thẻ này dùng

để chỉ định các metadata (bao gồm title, icon, theme,…) và các thành phần cho ứng dụng Nó đồng thời cũng là thẻ cha của các thẻ Activity, Service, Content Provider, và Broadcast Receiver

<service android:enabled="true" android:name=".MyService">

</service>

<uses-permission>

 Activity Manager

Trang 16

Quy định các quyền hạn mà ứng dụng muốn sử dụng trên hệ thống

Và người dùng sẽ phải xác nhận các quyền này trong khi cài ứng dụng Điềunày đảm bảo cho việc ứng dụng không thể toàn { sử dụng các tài nguyên của

hệ thống (tin nhắn, danh bạ, thông tin cá nhân, camera, định vị, mạng,…) Đây là một điểm bảo mật cần lưu ý

3 Activity

Activity là thành phần ứng dụng cung cấp một màn hình tương tác cho người sửdụng nhằm thực hiện một thao tác nào đó chẳng hạn như gọi điện thoại, chụp ảnh, gửi email hay xem bản đồ Mỗi activity chạy trong một cửa sổ hiển thị trên giao diện của người sử dụng Cửa sổ có thể hiển thị toàn màn hình hoặc nhỏ hơn màn hình và nổi phía trên các cửa sổ khác

Một ứng dụng thường bao gồm nhiều activitiy liên kết với nhau Thông thường thường một activity của ứng dụng đóng vai trò activity chính và được hiển thị cho

Trang 17

người sử dụng trong lần đầu tiên chạy ứng dụng Mỗi activity có thể khởi chạy mộtactivity khác

Mỗi lần một activity mới được khởi động thì activity trước đó sẽ bị dừng lại nhưng hệ thống vẫn sắp nó vào stack (tên là “Back stack”) Khi một activity mới khởi động, nó được xếp phía trên cùng trong khối stack và được focus “Back stack” hoạt động theo trình tự “vào sau, ra trước”, cho nên khi người sử dụng đã thao tác xong với activity hiện tại và nhấn “BACK”, chương trình sẽ “pop” ra từ stack activity liền trước và activity đó sẽ tiếp tục hoạt động trở lại

Có nhiều phương thức callback mà một activity có thể nhận được khi có sự thayđổi trạng thái (khởi tạo, dừng, resume hoặc hủy) và bạn có thể thực hiện một thao tác tương ứng với sự thay đổi trạng thái Chẳng hạn khi bị dừng lại thì activity sẽ phải giải phóng bộ nhớ, đóng truy cập database,… Khi được khởi động lại bạn có thể truy cập những dữ liệu cần thiết và resume các thao tác bị gián đoạn trước đó Những sự chuyển đổi về trạng thái này hợp thành vòng đời của một activity

Tạo một Activity

Để tạo một activity, bạn phải tạo một subclass cho Activity (hoặc cho chính nó) Trong subclass, bạn cần phải xác định cách thức callback mà hệ thống sẽ sử dụng khi có sự chuyển đổi trạng thái của activity chẳng hạn như khi activity được tạo, dừng lại, resume hoặc bị hủy Có 2 phương thức callback quan trọng:

onCreate()

 Activity Manager

Bạn cần phải hiện thực hóa phương thức này, vì hệ thống sẽ gọi tới method này mỗi khi activity được khởi động Và quan trọng, đây chính là nơi cần gọi phương thức setContentView() để xác định bố cục cho giao diện người dùng

onPause()

 Activity Manager

Hệ thống sẽ gọi tới phương thức này khi người dùng rời khỏi ứng dụng (nó không đồng nghĩa với việc activity sẽ bị hủy) Đây là nơi bạn sẽ thực hiện lưu lại trạng thái, hoặc không làm gì cả (vì người dùng có thể không trở lại)

Trang 18

Có một số phương thức bạn có thể sử dụng để kiểm soát vòng đời của

activity trước những sự gián đoạn không mong muốn dẫn đến activity bị dừng lại, thậm chí bị hủy bỏ Những phương thức này sẽ được nói tới trong phần Kiểm soát vòng đời Activity

Triển khai một giao diện người dùng

Mỗi giao diện của một activity là tập hợp của các View (các đối tượng của lớp kế thừa từ lớp View) Mỗi đối tượng View kiểm soát một vùng riêng trong vùng màn hình và có thể phản ứng lại với tương tác của người dùng Ví dụ View

có thể là một button và có thể thực hiện một hành động nào đó khi người dùng chạm vào nó Android cung cấp một số các lớp View sẵn để bạn có thể sử dụng vào layout của mình “Widget” là một view đặc biệt, dùng để hiển thị ngoài màn hình chính, bao gồm: button, text field, checkbox, hoặc đơn giản chỉ là image

“Layout” là view kế thừa từ ViewGroup, nó cung cấp một khuôn mẫu cách bố trí các view bên trong nó, chẳng hạn như: linear layout, grid layout, relative layout Bạn có thể tạo cho riêng mình các View hay ViewGroup để áp dụng vào giao diện của bạn

Cách thông thường nhất để định nghĩa một layout đó là sử dụng file XML lưu trong thư mục resource của ứng dụng Với cách này bạn có thể duy trì thiết kế giaodiện tách bạch với source code Bạn có thể set layout này làm giao diện của

activity bằng phương thức setContentView(), truyền vào tham số là ID của layout

đó thông qua lớp R Tất nhiên bạn cũng có thể tạo giao diện trực tiếp bằng code

Khai báo Activity trong file Manifest

Bạn cần phải khai báo rõ ràng một activity trong file manifest thì activity đó mới

có thể hoạt động được Để khai báo Activity ta dùng thẻ <activity> là thẻ con của

<application> Tương tự như sau:

Trang 19

Có nhiều thuộc tính bạn có thể đưa vào <activity> chẳng hạn như: label, icon, hay theme.

Bắt đầu một Activity

Bạn có thể bắt đầu một Activity khác trong activity đang chạy bằng phương thức startActivity(), truyền vào tham số là một Intent quy định rõ Activity nào bạn muốn bắt đầu và sẽ thực hiện hành động cụ thể nào (hệ thống sẽ chọn ra Activity chính xác cho bạn, nó có thể thuộc một ứng dụng khác)

Ví dụ sau đây bắt đầu một Activity có tên SingInActivity:

Intent intent = new Intent(this, SignInActivity.class);

startActivity(intent);

Trang 20

Tuy nhiên ứng dụng của bạn khi muốn bắt đầu một Activity mà ứng dụng không

có sẵn, chẳng hạn như gửi email, sms, gọi điện,… Trong trường hợp này ứng dụng

sẽ cần gọi đến các Activity được cung cấp sẵn trên hệ thống, đây là một điểm rất hữu ích của Android Ví dụ bạn cần thực hiện thao tác gởi email, bạn làm như sau:

Intent intent = new Intent(Intent.ACTION_SEND);

intent.putExtra(Intent.EXTRA_EMAIL, recipientArray);

startActivity(intent);

Khi thực hiện đoạn mã này thì Activity gởi email của hệ thống sẽ khởi động,

Activity của bạn sẽ ẩn đi Sau khi người dùng gởi email xong, Activity của bạn sẽ được resume

Bắt đầu một Activity và kết quả trả về

Đôi khi bạn muốn nhận được kết quả trả về sau khi chạy một Activity nào đó Trong trường hợp này, bạn sử dụng phương thức startActivityForResult() thay vì startActivity(), sau đó để nhận được kết quả trả về ở Activity kế tiếp, bạn sử dụng phương thức onActivityResult() Kết quả được truyền đi là một Intent

Như ví dụ sau, bạn bắt đầu một Activity cho phép chọn một số trong danh bạ, sau

đó nhận kết quả tại Activity của mình:

private void pickContact() {

Intent intent = new Intent(Intent.ACTION_PICK,

Trang 21

Bạn có thể kết thúc một Activity bằng cách gọi phương thức finish() Bạn cũng có thể kết thúc một Activity riêng biệt mà trước đó bạn đã khởi động bằng phương thức finishActivity()

Chú ý: trong hầu hết trường hợp bạn không nên dùng cách này để kết thúc một Activity, vì hệ thống Android sẽ làm nhiệm vụ này cho bạn Khi dùng cách này cũng có thể sẽ ảnh hưởng đến trải nghiệm của người dùng khi tương tác với ứng dụng

Kiểm soát vòng đời Activity

Việc kiểm soát này rất quan trọng để có thể xây dựng được một ứng dụng linh hoạt

và mạnh mẽ Một Activity có thể tồn tại ba trạng thái cơ bản sau:

“sống” (activity vẫn còn được lưu trong bộ nhớ) tuy nhiên activity này có thể bị kết thúc bởi hệ thống khi bộ nhớ đã cạn kiệt

Stopped

 Activity Manager

Khi Activity hoàn toàn bị che đi bởi một Activity khác (hay nói cách khác là Activity này đang nằm trong “background”) Một Stopped Activity thì vẫn còn “sống”, tuy nhiên nó không còn hiển thị cho người dùng sử dụng

và có thể bị kết thúc bất cứ lúc nào bởi hệ thống

Các phương thức tương ứng trong vòng đời Activity

Vòng đời của một Activity không phải do Activity kiểm soát, mà nó sẽ do

hệ thống kiểm soát, vì trong lúc thực thi activity, sẽ có những tình huống xảy ra bấtngờ ảnh hưởng đến Activity

Ứng với mỗi hình huống xảy ra, hệ thống sẽ có một lời gọi tương ứng kiểu như sau:

Trang 22

public class ExampleActivity extends Activity {

onResume()

 Activity Manager

Trang 23

Chỉ được gọi khi Activity bắt đầu các tương tác với người dùng Luôn được theo sau bởi phương thức onPause()

onStop()

 Activity Manager

Gọi khi Activity không còn được sử dụng nữa Nó có thể sẽ bị hủy bỏ,hoặc có thể sẽ lại được kích hoạt lại từ một Activity khác Theo sau bởi onRestart() nếu nó được kích hoạt lại, hoặc onDestroy() nếu nó bị hủy bỏ bởi hệ thống

onDestroy()

 Activity Manager

Gọi trước khi Activity thật sự bị hủy bỏ, đây là lời gọi cuối cùng mà Activity có thể thực hiện Phương thức này có thể được gọi bởi vì ở đâu đó

có lời gọi finish() hoặc finishActivity(), cũng có thể vì hệ thống cần phải hủy

bỏ để giải phóng bộ nhớ Không được theo sau bởi phương thức nào

Trang 24

Sơ đồ minh hoạ vòng đời Activity

PHẦN 2: CÁC CÀI ĐẶT CẦN THIẾT CHO

LẬP TRÌNH ANDROID

Trang 25

+ Eclipse với ADT plug-in

Tải và cài đặt Android SDK

Để tải về và cài đặt,chúng ta truy cập vào trang web:

http://developer.android.com/sdk

Sau khi tải về,chúng ta bắt đầu cài đặt như sau:

Double-click vào biểu tượng SDK sau khi đã tải về để cài đặt

Trang 26

Cửa sổ hiện ra,chọn Next để cài đặt.

Cài đặt sẽ tự động tìm xem trong máy đã cài đặt Java Development Kit(JDK) chưa,nếu chưa sẽ tự động tải về và cài đặt,nếu trong máy đã có ta chọn Next.

Trang 27

1 cửa sổ hiện ra,có 2 tuỳ chọn

- Install for anyone using this computer: cài đặt cho bất kỳ ai sử dụng máy

tính này

- Install just for me: Cài đặt cho riêng bạn sử dụng.

Lựa chọn xong,chúng ta chọn Next.

Trang 28

Chọn nơi lưu cài đặt,nếu muốn lưu ở vị trí khác,ta chọn Browse.

Rồi chọn Next.

Chọn tên thư mục hiển thị trong Start,sau đó bấm Install để tiếp tục cài đặt.

Trang 29

Cài đặt sẽ chạy trong vài phút, xong ta chọn Next

Một cửa sổ hiện ra,ta chọn Finish để hoàn tất cài đặt.

- Sau khi cài đặt,ta khởi động SDK Manager:

Vào Start - All Program – Android SDK Tools – SDK Manager

Trang 30

Ta tiến hành cài đặt gói SDK chính(phiên bản mới nhất là Android 4.1.2).Đánh

dấu vào Android 4.1.2 và chọn Install packages.

Chọn Install

Trang 31

Cài đặt sẽ download các file cần thiết về(ta cần có kết nối Internet),quá trình này lâu hay chậm tuỳ thuộc vào tốc độ download của mạng.

- Sau khi cài đặt xong,ta vào ADV Manager

Chúng ta vào ADV Manager để tạo ra 1 thiết bị chạy Android ảo ADV là 1 máy

ảo với cấu hình phần cứng tuỳ chỉnh,nơi có thể chạy Android cũng như các ứng dụng trên Android

Trang 32

Vào Start – All Program – Android SDK Tools – ADV Manager

Cửa sổ hiện ra,chọn New…

- Name :Gõ tên của thiết bị

- Target: chọn nền tảng mà ta muốn thiết bị sẽ chạy(ở trên ta vừa cài SDK

Platform Android 4.1.2,nên ở đây ta chọn Android 4.1.2)

Trang 33

- CPU/ABI: ta chọn AMR

- Còn những mục khác ta có thể để mặc định

Sau đó chọn Create ADV

Cửa sổ hiện lên báo kết quả của việc cài đặt và các thông số ta vừa lựa chọn

Ta bấm OK để tiếp tục

Sau khi tạo xong ADV,ta sẽ thấy tên của ADV xuất hiện trong danh sách.Ta

chọn vào ADV đó và chọn Start…

Trang 34

Chọn Launch để tiếp tục.

Cài đặt bắt đầu trình giả lập cho thiết bị

Trang 35

Cửa sổ này hiện ra nghĩa là ta đã cài đặt thành công cho thiết bị.

CÀI ĐẶT ADT PLUG-IN CHO ECLIPSE

Trước khi cài đặt ADT,Eclipse phải được cài đặt sẵn.Chúng ta download eclipse ở trang web: http://www.eclipse.org/downloads

Sau khi tải về,thư mục Eclipse sẽ có các mục như trên,chúng ta chọn file :

eclipse

Ngày đăng: 12/05/2014, 16:18

HÌNH ẢNH LIÊN QUAN

Sơ đồ minh hoạ vòng đời Activity - ĐỒ ÁN TỐT NGHIỆP XÂY DỰNG ỨNG DỤNG NGHE NHẠC CHO ANDROID FULL
Sơ đồ minh hoạ vòng đời Activity (Trang 23)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w