Tên hệ điều

13
Ôn tập môn Lập trình trên thiết bị di động – CNPM K9 Phần Lý thuyết Câu 1: Giới thiệu sơ qua về 3 nền tảng di động phổ biến hiện nay Android, iOS, Windows Phone. Hệ điều hành trên điện thoại thông minh hay máy tính bảng hiện đang được xem là bí quyết quyết định thành công của các nhà sản xuất. Song dù thời gian có mặt khác nhau, thì mỗi hệ điều hành đều có ưu, khuyết điểm riêng, ảnh hưởng trực tiếp đến việc lựa chọn của người dùng, chúng ta có cái nhìn tổng quan về 3 hệ điều hành trên thiết bị di động: Tên hệ điều hành trên điện thoại Ưu điểm Nhược điểm Android (Google) -Tùy biến nhanh chóng -Dễ làm quen -Ứng dụng hỗ trợ phong phú, -Tương thích với đa cấu hình phần cứng liên tục được cập nhật phiên bản mới -Bị phân mảnh(quá nhiều phiên bả) khiến cho việc nâng cấp lên phiên bản mới khó thực hiện đồng nhất trên nhiều thiết bị -Đối với từng hãng có điều chỉnh riêng, khiến người dùng bối rối khi thay đổi thiết bị -Android có khá nhiều lỗ hổng bảo mật iOS (Apple) -Giao diện thiết kế đẹp, tinh tế -Bảo mật cao -Kho ứng dụng vô cùng phong phú -Sau nâng cấp, luôn khiến người dùng phải ngạc nhiên, thích thú với quá nhiều thay đổi -Thiết lập đồng bộ với iTunes gây khó khăn cho những người mới tiếp cận iOS -Nếu không am hiểu, bạn sẽ mất thời gian trong việc đồng bộ: danh bạ chép ứng dụng nhạc, phim từ máy tính vào điện thoại Windows Phone (Microsoft) -Tính đồng bộ với máy tính cao( vì sử dụng các dịch vụ của Microsoft) -Giao diện Metro độc đáo -Hỗ trợ công việc với các tiện ích văn phòng mạnh mẽ -Cũng rất dễ tiếp cận sử dụng -Quá cũ kĩ(ảnh hưởng từ thế hệ thiết bị sử dụng Windows Mobile) -Chỉ hấp dẫn doanh nghiệp chứ không hấp dẫn người sử dụng là cá nhân -Giao diện Metro không đẹp -Chợ ứng dụng chưa thật sự đa dạng –Chi phí cho ứng dụng khá cao

Transcript of Tên hệ điều

Ôn tập môn Lập trình trên thiết bị di động – CNPM K9 Phần Lý thuyết Câu 1: Giới thiệu sơ qua về 3 nền tảng di động phổ biến hiện nay Android, iOS, Windows Phone.

Hệ điều hành trên điện thoại thông minh hay máy tính bảng hiện đang được xem là bí quyết quyết định thành công của các nhà sản xuất. Song dù thời gian có mặt khác nhau, thì mỗi hệ điều hành đều có ưu, khuyết điểm riêng, ảnh hưởng trực tiếp đến việc lựa chọn của người dùng, chúng ta có cái nhìn tổng quan về 3 hệ điều hành trên thiết bị di động:

Tên hệ điều hành trên điện thoại

Ưu điểm Nhược điểm

Android (Google)

-Tùy biến nhanh chóng -Dễ làm quen -Ứng dụng hỗ trợ phong phú, -Tương thích với đa cấu hình phần cứng liên tục được cập nhật phiên bản mới

-Bị phân mảnh(quá nhiều phiên bả) khiến cho việc nâng cấp lên phiên bản mới khó thực hiện đồng nhất trên nhiều thiết bị -Đối với từng hãng có điều chỉnh riêng, khiến người dùng bối rối khi thay đổi thiết bị -Android có khá nhiều lỗ hổng bảo mật

iOS (Apple) -Giao diện thiết kế đẹp, tinh tế -Bảo mật cao -Kho ứng dụng vô cùng phong phú -Sau nâng cấp, luôn khiến người dùng phải ngạc nhiên, thích thú với quá nhiều thay đổi

-Thiết lập đồng bộ với iTunes gây khó khăn cho những người mới tiếp cận iOS -Nếu không am hiểu, bạn sẽ mất thời gian trong việc đồng bộ: danh bạ chép ứng dụng nhạc, phim từ máy tính vào điện thoại

Windows Phone

(Microsoft)

-Tính đồng bộ với máy tính cao( vì sử dụng các dịch vụ của Microsoft) -Giao diện Metro độc đáo -Hỗ trợ công việc với các tiện ích văn phòng mạnh mẽ -Cũng rất dễ tiếp cận sử dụng

-Quá cũ kĩ(ảnh hưởng từ thế hệ thiết bị sử dụng Windows Mobile) -Chỉ hấp dẫn doanh nghiệp chứ không hấp dẫn người sử dụng là cá nhân -Giao diện Metro không đẹp -Chợ ứng dụng chưa thật sự đa dạng –Chi phí cho ứng dụng khá cao

Câu 2: Lịch sử phát triển của Android ? Trình bày các phiên bản của Android đã được phát hành. Lịch sử phát triển của Android: -Android là một hệ điều hành di động dựa trên nền tảng linux phiên bản 2.6 dành cho các dòng điện thoại SmartPhone. -Đầu tiên đượcra đời bởi công ty liên hợp Android, sau đó được Google mua lại và phát triển từ năm 2005 và trở thành một hệ điều hành di động mã nguồn mở, miễn phí, mạnh mẽ và được ưa chuộng cao trên thế giới. -Android liên tục được phát triển, mỗi bản cập nhật từ google là mỗi lần android được tối ưu hóa để hoạt động tốt hơn, nhanh và ổn định hơn, hỗ trợ thêm công nghệ mới. -Năm 2008, hệ điều hành android đã chính thức mở toàn bộ mã nguồn. -Sau mỗi lần cập nhật, đánh giá thì android phiên bản 2.2 hoạt động nhanh hơn bản 2.1 tới 450%. Hiện nay, phiên bản mới nhất 2.3 phát hành ngày 6/12/2010 và đang tiếp tục được cập nhật. Các phiên bản của Android : - Android 1.0( 23-11-2008)

HTC Dream là smartphone dùng Android đầu tiên với kiểu dáng trượt kèm bàn phím vật lý.

Chưa được Google định hình tên mã (trước đó tên gọi Astro Boy hay Bender).

Android 1.0 rất nguyên sơ, tích hợp khả năng đồng bộ dữ liệu với các dịch vụ trực tuyến,

một trình phát media, hỗ trợ Wi-Fi và Bluetooth, thanh trạng thái hiển thị các thông báo

ứng dụng và một ứng dụng chụp ảnh (camera).

- Android 1.1(9-2-2009)

Android 1.1 đã có tên Petit Four.

Bổ sung một số chức năng mới cho Google Maps hiển thị chi tiết hơn, bàn phím ảo gọi điện

thoại đã có thể hiển thị hoặc ẩn khi gọi.

Chương trình SMS cho phép người dùng lưu tập tin đính kèm.

Android 1.1 sửa một số lỗi trong Android 1.0.

- Android 1.5(30-4-2009)Cupcake

Cupcake, tên mã đầu tiên áp dụng cho phiên bản Android.

Cupcake mang nhiều tính năng mới như bàn phím ảo có khả năng dự đoán từ đang gõ, từ

điển từ ngữ do người dùng đặt ra, hỗ trợ widget trên giao diện chủ, quay phim và phát lại

video clip, lược sử thời gian cuộc gọi, chế độ tự động xoay màn hình theo hướng sử dụng

(screen rotation). Trình duyệt web trong Cupcake có thêm khả năng sao chép/ dán

(copy/paste).cho phép người dùng hiển thị hình ảnh trong danh bạ.

- Android 1.6(30-9-2009)Donut

Donut khắc phục các chức năng "lỏng lẻo" trong Cupcake, mở rộng chức năng tìm kiếm

bằng giọng nói và ký tự đến bookmark và danh bạ. Android Market trở thành "chợ đầu

mối" để người dùng tìm kiếm và xem các ứng dụng Android.

Ứng dụng chụp ảnh và quay phim trong Donut nhanh hơn.

Hệ điều hành hỗ trợ màn hình có độ phân giải lớn hơn, hướng đến các thế hệ smartphone

màn hình lớn.

- Android 2.0(26-10-2009) Eclair

Google tung ra Eclair, phiên bản được nhận định là "bước đi lớn" của hệ điều hành này.

Eclair cải tiến rất nhiều, từ giao diện đến ứng dụng bên trong hệ thống.

Ứng dụng chụp ảnh tăng cường thêm chức năng zoom số (phóng to), cân bằng trắng, hỗ trợ

đèn flash và các hiệu ứng màu sắc.

Hệ thống hoạt động ổn định hơn, cải thiện khả năng xử lý, hỗ trợ kết nối Bluetooth tốt hơn,

đặc biệt tùy chọn đồng bộ nhiều tài khoản. Một điểm thuận tiện được đánh giá cao lúc bấy

giờ là giao diện danh bạ cho phép nhấn chọn vào một ảnh danh bạ để gọi, nhắn tin hay

email đến họ.

Eclair là phiên bản Android đầu tiên hỗ trợ ảnh nền động (live wallpaper) dù tùy chọn này

tiêu tốn khá nhiều pin.

- Android 2.2(20-5-2010) Froyo

mang Adobe Flash đến Android, kéo theo hàng loạt ứng dụng và game trên nền Flash.

Người dùng có thể xem video clip nền Flash như YouTube và "ra lệnh" thực hiện cuộc gọi

qua Bluetooth.

Là thiết bị phát sóng Wi-Fi từ kết nối 3G. được sử dụng rất phổ biến đến ngày nay.

Lần đầu tiên Android cho phép cài đặt ứng dụng (app) lên thẻ nhớ SD thay vì mặc định cài

ngay vào bộ nhớ trong của thiết bị.

Điểm "đầu tiên" nữa trong Froyo bao gồm mật khẩu đã hỗ trợ số và chữ số.

Thiết bị đầu tiên mang nhãn Froyo ra mắt thị trường là HTC Nexus One.

- Android 2.3(6-12-2010)Gingerbread

dòng smartphone đầu tiên sử dụng Gingerbread mang tên Nexus S, hỗ trợ công nghệ giao

tiếp tầm gần NFC.

Gingerbread đưa vào hệ thống một công cụ quản lý tải tập tin, cho phép theo dõi và truy

xuất đến các tập tin đã tải về máy.

Hệ thống này hỗ trợ nhiều camera cho các thiết bị có camera mặt sau và trước, quản lý

nguồn pin hiệu quả hơn, tiết kiệm thời lượng pin.

Phiên bản này khắc phục khá nhiều lỗi từ Froyo, kèm theo một số điều chỉnh trong giao

diện người dùng (UI).

- Android 3.0(22-2-2011)Honeycomb

là một thế hệ Android đầu tiên dành riêng cho máy tính bảng (tablet).

Mang những tính năng từ thế hệ Android 2.x, Android 3.0 cải tiến giao diện phù hợp với

cách sử dụng máy tính bảng, bàn phím ảo thân thiện hơn, hỗ trợ xử lý đa tác vụ (multi-

tasking)

cho phép chuyển đổi qua lại các ứng dụng đang cùng chạy. Không chỉ có bề mặt được trau

chuốt, phần lõi hệ thống có các cải tiến tương thích với phần cứng như hỗ trợ chip xử lý

(CPU) đa lõi, tăng tốc phần cứng...

Android 3.0 đặt nền móng quan trọng cho thế hệ Android 4.x hợp nhất, khắc phục sự phân

mảng của Android (có các phiên bản riêng dành cho smartphone và tablet).

- Android 4.0(19-10-2011)Ice Cream Sandwich

là thế hệ Android được mong đợi nhất đến nay,thế hệ smartphone đầu tiên trang bị ICS.

truy xuất nhanh các ứng dụng thường dùng vào phần bên dưới giao diện chủ, tùy biến

widget, dễ sắp xếp và duyệt danh sách ứng dụng hơn.

Các ứng dụng đã có thể truy xuất nhanh từ màn hình khóa thiết bị (Lock screen), hiện các

hãng sản xuất thiết bị chỉ mới cho phép Camera có thể chọn nhanh từ Lock screen.

Ice Cream Sandwich hoạt động mượt mà, nhanh và đẹp hơn.

- Android 4.1(9-7-2012.) Jelly Bean

Máy tính bảng Nexus 7là thiết bị dùng Jelly Bean đầu tiên ra mắt.

Android 4.1 nâng tầm hoạt động cho hệ điều hành của Google, trở thành hệ điều hành cho

thiết bị di động hàng đầu hiện nay, đe dọa cả "ông lớn" Windows.

Khả năng sắp xếp giao diện chủ và widget trong Jelly Bean rất tùy biến và linh hoạt.

Hệ thống hỗ trợ dịch vụ ví điện tử Google Wallet, đặc biệt trình duyệt web mặc định trong

Android được thay thế bởi đại diện tên tuổi: Chrome, với khả năng đồng bộ dữ liệu theo tài

khoản với bản Chrome trên máy tính.

Jelly Bean giới thiệu Google Now, dịch vụ trực tuyến mới hiện chỉ dành cho Android (đắc

lực cho công việc sắp xếp lịch trình, tìm kiếm thông tin, xác định vị trí)

- Android 4.2(11-2012)

Phiên bản 4.2 và vẫn mang tên mã Jelly Bean.

Android 4.2 tiếp tục mang đến những cải tiến hấp dẫn cho ứng dụng chụp ảnh (Camera)

như HDR, Photo Sphere, hiệu ứng ảnh, Google Now, đưa tính năng lướt chọn từ rất hay

trong bàn phím ảo.

Hỗ trợ nhiều tài khoản người dùng trên máy tính bảng (multi-user profile).

Câu 3: Kiến trúc nền tảng Android gồm mấy tầng? là những tầng nào? Nêu vai trò và chức năng của từng tầng? Kiến trúc nền tảng Android bao gồm 5 tầng. Các tầng trong đó là: -tầng lõi ARM linux(linux kernel layer) -tầng thư viện(Libraries)

-tầng máy ảo Android(Android Runtime) -tầng khung ứng dụng (Application Framework) -tầng ứng dụng(applications)

Tên tầng Vai trò, chức năng tầng lõi ARM

linux (linux kernel

layer)

-là tầng thấp nhất, được xây nhằm giải quyết phần nào giới hạn về

nguồn năng lượng sử dụng và tối ưu việc sử dụng các tài nguyên trong

thiết bị.

-Quản lý bộ nhớ, tiến trình và các kênh kết nối mạng

tầng thư viện (Libraries)

-chứa mã nguồn cấp thấp cho những chức năng: +mã hóa và giải mã âm thanh, hình ảnh kĩ thuật số +trình bày các giao diện đồ họa bảo mật lưu lượng TCP /IP cũng như các thành phần cho trình duyệt Web +hỗ trợ truy xuất cơ sở dữ liệu (Sqlite)…

tầng máy ảo Android(And

roid Runtime)

-dùng để chạy các ứng dụng trên thiết bị Android bao gồm một tập các thư viện lõi (core libraries) cung cấp hầu hết các chức năng trong thư viện lõi của ngôn ngữ lập trình Java và máy ảo Dalvik. -Dalvik được viết để một thiết bị có thể chạy nhiều máy ảo cùng lúc hiệu quả -Máy ảo Dalvik thực thi các tập tin dex, là loại tập tin được tối ưu để tiết kiệm bộ nhớ, và để quản lý tiến trình, quản lí bộ nhớ hiệu quả, máy ảo này cũng sử dụng các chức năng do Linux kemel cung cấp. - giúp tối ưu việc sử dụng bộ nhớ và nguồn năng lượng giới hạn.

tầng khung ứng dụng

(Application Framework)

-tầng này định nghĩa Android APL, cung cấp bộ công cụ ở mức cao để các lập trình viên Java nhanh chóng xây dựng ứng dụng. -quản lý chu kì sống của Activity. -cung cấp thư viện để truy xuất đến các dịch vụ điện thoại cũng như là thông tin thuê bao. -xử lý giao diện trong ứng dụng Android của bạn -cung cấp thư viện hỗ trợ người dùng định vị vị trí của thiết bị.

tầng ứng dụng

(Application)

-bao gồm những ứng dụng cơ bản hỗ trợ thêm cho người lập trình như: Webkit browser, Google Calendar, Gmaii, Maps Application , SMS Messenger, và e -mail client, v.v. .. Bạn có thể viết thêm các ứng dụng Android riêng ở tầng này. -Đây là tầng cao nhất và ứng dụng của bạn sẽ nằm trong tầng này. -Có sẵn một số thư viện tiện ích giúp truy xuất thông tin ở phần bên dưới linh hoạt và hiệu quả nhất.

Câu 4: Google Play Store là gì ? Làm thế nào để tải ứng dụng (miễn phí và trả phí) trên Google Play Store về điện thoại ?

Google Play store: trước đây là Android Market, là một kênh phân phối kỹ thuật số nền tảng điều hành bởi Google.

Nó phục vụ như chính thức cửa hàng ứng dụng cho Android hệ điều hành, cho phép người dùng duyệt và tải các ứng dụng phát triển với SDK Android và công bố thông qua Google.

Phục vụ như là một phương tiện truyền thông kỹ thuật số lưu trữ, cung cấp âm nhạc, tạp chí, sách, phim ảnh, và chương trình truyền hình.

Là nơi để người dùng thỏa sức trải nghiệm các ứng dụng dành riêng cho hệ điều hành Android.

Có thể download hàng loạt các ứng dụng miễn phí hay trả phí dành cho không chỉ điện thoại, mà là tất cả các thiết bị có hệ điều hành Android. Cách tải ứng dụng:

Để sử dụng ứng dụng google play store cho việc cài đặt game apps, bạn cần đăng nhập vào ứng dụng Google Play bằng tài khoản google hoặc tài khoản gmail ( nếu không có bạn có thể tạo ngay trên phần mềm hoặc truy cập trang gmail.com đăng ký miễn phí). Sau đó bạn có thể tha hồ sử dụng ứng dụng một cách thỏa mái rồi, sau khi bạn đã đăng nhập thì từ lần sau bạn không cần đăng nhập lại một lần nào nữa, chú ý skip đoạn nhập thẻ visa vì nó dành cho việc mua những sản phẩm chất lượng cần phải trả phí. Tuy nhiên kho miễn phí của tai google play là quá đủ để bạn khám phá rồi.

TẢI XUỐNG CÁC ỨNG DỤNG ANDROID(MIỄN PHÍ)

-Nếu đây là lần đầu tiên bạn mua hàng trên Google Play, bạn có thể được yêu cầu tạo tài khoản Google Wallet để hoàn tất giao dịch mua của mình.

-Sử dụng ứng dụng Cửa hàng Google Play -Tải các ứng dụng Android bằng ứng dụng Cửa hàng Play -Mở ứng dụng Cửa hàng Google Play -Chọn một ứng dụng bạn muốn tải xuống. -Chạm vào Cài đặt hoặc giá của ứng dụng. -Chạm vào Chấp nhận sau khi xem xét các quyền của ứng dụng.

CÁCH MUA(TRẢ PHÍ) CHO ỨNG DỤNG TẠI GOOGLE PLAY STORE

-Chọn biểu tượng Google Play Store trên màn hình Android

-Chọn ứng dụng bạn yêu thích

-Chọn mua ứng dụng và bắt đầu thanh toán.

-Chọn loại thẻ thanh toán mà bạn sử dụng. Bạn cần điền đầy đủ các thông

tin của thẻ và thông tin cá nhân.chọn nút Lưu, nếu không có gì sai sót xảy ra.

-Chọn Chấp nhận & mua để tiến hành mua ứng dụng.Khithành công, thiết

bị của bạn đang tải ứng dụng và thực hiện cài đặt.

Câu 5: Cấu trúc lưu trữ của một dự án Android như thế nào ? Các thành phần của một dự án Android là gì ? Cấu trúc lưu trữ:

- Thư mục mã nguồn(src): chứa toàn bộ các tập tin *.java có trong ứng dụng. - Thư mục thư viện Android: bộ thư viện hỗ trợ cho các ứng dụng người dùng. - Thư mục assets: Mặc định được tạo ra, mục tiêu chính của thư mục này là

dùng để lưu trữ dữ liệu do bạn định nghĩa như: tập tin html, tập tin xml. - Thư mục res: Dùng để lưu trữ tài nguyên của ứng dụng. - Thư mục bin, libs và referenced libraries: mặc định được tạo ra, để chứa

những thư viện bên ngoài nhằm hỗ trợ phát triển ứng dụng(không phải là thư viện trong JDK hay Android SDK)

- Thư mục gen: Thư mục gen chứa tập tin R.java được ADT phát sinh. Các tài nguyên được thêm trong thư mục res/ sẽ được ADT phát sinh một ID, khi người dùng muốn truy xuất tài nguyên nào đó, chỉ cần chỉ định giá trị ID tương ứng của nó.

- Tập tin androidmanifest.xml: là tập tin quan trọng nhất trong dự án và nó chứa tất cả thông tin của dự án. Trước khi ứng dụng của bạn chạy, hệ thống sẽ đọc những thông tin này. Nếu bạn không khai báo thành phần nào đó trước khi sử dụng thì hệ thống sẽ báo lỗi. Các thành phần tạo nên 1 dự án Android: Activities: - Một Activity đại diện cho một cửa sổ chứa giao diện ứng dụng mà người dùng có thể tương tác trực tiếp. - Trong mỗi activity ngoài việc thiết lập giao diện, nó còn phải xử lý những tương tác giữa người dùng với giao diện như: chạm, bấm nút lệnh Services: - Đây là loại Application Component chạy nền để thực hiện những công việc liên tục và kéo dài.Một Activity thường được dùng để hiển thị một giao diện nào đó, nhưng một Service không có giao diện. - Một Service được tạo ra trong ứng dụng sẽ là một lớp con của lớp Service trong Android Platform và bạn có thể dùng một Activity để khởi động Service này. Content Providers: - Content Providers trong Android được dùng để quản lý một tập các dữ liệu chia sẻ. Bạn có thể lưu trữ dữ liệu dưới dạng tập tin, cơ sở dữ liệu SQLite, trên Website hay trên bất kì vị trí lưu trữ nào mà ứng dụng của bạn có thể truy xuất. - Một Content Providers do bạn tạo ra sẽ được kế thừa từ lớp Content Provider của Android Platform. Broadcast Receivers: - Broadcast Receivers là loại Component trong ứng dụng để lắng nghe các thông điệp (Broadcast) được gửi đi từ hệ thống. - Bản than ứng dụng cũng có thể gửi đi những thông điệp(Broadcast) để những ứng dụng khác biết. - Một đối tượng Broadcast Receiver được tạo ra từ lớp cha BroadcastReceiver trong Android Platform.

Câu 6: Layout là gì ? Trong Android hỗ trợ chủ yếu mấy loại layout ? Giải thích chi tiết từng loại Layout Layout: được dùng để quản lý các thành phần giao diện khác theo 1 trật tự nhất định. Android hỗ trợ chử yếu 4 loại Layout: Frame Layout, Linear Layout, Table Layout, Relative layout. Trong đó: Frame Layout:

Là đối tượng đơn giản nhất. Chứa nhiều View và các View này sẽ được sắp chồng lên nhau. Nếu chứa nhiều View thì có thể xếp chồng lên nhau nếu chúng có cùng kích

thước thì những đối tượng nằm dưới sẽ bị che khuất.

Linear Layout: Là dạng Layout tổ chức và sắp xếp các đối tượng đặt liên tiếp nhau theo hàng

ngang hoặc hàng dọc. LinearLayout là loại layout đơn giản cho phép bố trí các điều khiển theo một

trật tự tuyến tính.

Table Layout: Là dạng Layout được tổ chức, sắp xếp các đối tượng thành dòng và cột. Chúng ta sử dụng <TableRow> để thiết kế một dòng trong Table và mỗi dòng

trong TableLayout có thể chứa một hoặc nhiêu View. số cột được xác định tự động và bằng số phần tử của hàng có nhiều phần tử

nhất; kích thước của mỗi cột được xác định tự động bằng kích thước bề ngang của phần tử rộng nhất.

Relative Layout:

RelativeLayout, các đối tượng sẽ được sắp xếp theo vị trí tương đối với nhau. Có nghĩa là đối với đối tượng, bạn phải xác định các đối tượng liền kề: trái, phải, trên, dưới với nó. Ngoài ra còn một số Layout khác như: Gallery, GrideView, ListView, v v. Nhưng không thường xuyên được sử dụng.

Câu 7: Widget là gì ? Nêu các loại Layout và View có thể sử dụng để thiết kế giao diện Widget.

Widget: là các điều khiển cho phép hiển thị dữ liệu và nhận tương tác với người dùng. Android hỗ trợ một số lượng lớn các widget tương tự như các điều khiển trên các nền tảng phần mềm có sử dụng giao diện đồ hoạ khác: Button (nút bấm), TextView (ô hiển thị văn bản), EditText (ô nhập dữ liệu), ImageButton (nút bấm ở dạng ảnh), RadioButton (nút đài), CheckBox (ô chọn),

Các loai layout và view có thể sử dụng để thiết kế giao diện widget: AbsoluteLayout, FrameLayout, RelativeLayout, TableLayout, LinearLayout.

Tất cả các widget trên màn hình ứng dụng là object tạo ra từ các lớp tương ứng trong package android. widget: lớp Button, lớp TextView, lớp EditText, lớp ImageButton, lớp RadioButton, lớp CheckBox v.v.. Các lớp này, đến lượt mình, đều kế thừa từ lớp View (trong package android.view).

Object của lớp View biểu diễn một phần hình chữ nhật của màn hình giao diện và là lớp cơ sở cho tất cả các thành phần của giao diện đồ hoạ của Android (widget và layout) Câu 8: Trình bày khái niệm về DDMS và Logcat. Cần phải sử dụng Logcat thế nào cho hợp lý để tránh lãng phí tài nguyên bộ nhớ ?

Dalvik Debug Monitor Service(DDMS): công cụ này cung cấp những dịch vụ như chụp màn hình thiết bị, quản lý thông tin tiến trình và ngăn xếp, logcat, v.v..

Android có một hệ thống debug hoàn hảo được hỗ trợ bởi logcat. Logcat sẽ thông báo toàn bộ về hệ điều hành, giúp chúng ta biết được hệ điều hành đang làm gì, gọi đến cái gì, khởi chạy những gì, chiếm dụng bộ nhớ ra sao…

File Explorer của Android là tính năng hữu ích của Google đưa vào giúp quản lý file trong SD Card và cả File system data. File Explorer giúp bạn dễ dàng đưa file vào và lấy file ra trong SD Card ảo của Simulator, xóa cơ sở dữ liệu để khởi tạo lại (only emulator) Câu 9: Android hỗ trợ mấy loại Menu, nêu đặc điểm và cách sử dụng từng loại

Có 3 loại Menu trong Android: Options Menu: • Là loại Menu xuất hiện khi người dùng bấm nút Menu trên thiết bị. • Hệ điều hành 2.3 trở xuống : Options Menu nằm ở dưới màn hình. • Hệ điều hành 3.0 trở lên: Options Menu nằm ở Action Bar. • Options Menu chứa những chức năng có hiệu lực trong phạm vi của Activity hiện hành và có khả năng gọi thực thi một Activity khác. Context Menu: • Đây là loại Menu tương tự như Menu hiển thị khi bạn bấm chuột phải vào một đối tượng nào đó trên máy tính PC hoặc laptop. • Trong thiết bị Android để hiện thị đối tượng này bạn phải bấm và giữ một đối tượng thì Context Menu cho đối tượng đó mới hiện thị. Sub Menu: • Là loại Menu hiển thị khi người dùng chọn một Item trên một Menu khác. • Sub Menu có thể được dùng để tạo danh sách các Menu con cho Options Menu

hoặc Context Menu.

Câu 10: Có mấy kiểu mở một Activity mới, là những kiểu nào ? Mô tả chi tiết các trạng thái vòng đời của một Activity qua sơ đồ sau?

Có 2 kiểu mở một Activity mới là:

a) Mở Activity mới lên làm che khuất toàn bộ Activity cũ (không nhìn thấy Activity cũ): sảy ra sự kiện onPause rồi onStop đối với Activity cũ

b) Mở Activity mới lên làm che khuất một phần Activity cũ (vẫn nhìn thấy

Activity cũ): Sảy ra sự kiện onPause với Activity cũ. - Khi quay trở về Activity cũ thì sau khi thực hiện xong các hàm cần thiết, chắc

chắn nó phải gọi hàm onResume để phục hồi lại trạng thái ứng dụng - Như vậy ta thường lưu lại trạng thái của ứng dụng trong sự kiện onPause và

đọc lại trạng thái ứng dụng trong sự kiện onResume Các trạng thái của vòng đời một activity:

• onCreate(): Sự kiện này được gọi khi Activity được gọi lần đầu tiên. Trong sự kiện này, phải thực hiện những công việc như sau: tạo giao diện cho Acitivity, tải dữ liệu vào danh sách, v v Sau sự kiện này thì sự kiện onStart() được gọi.

• onRestart(): Acitivity sau khi được chuyển sang trạng thái Stopped, nếu muốn hiển thị và dành được focus, sự kiện onRestart() phải được gọi. Sau sự kiện này luôn là sự kiện onStart() được gọi.

• onStart(): Sự kiện này được gọi khi giao diện của Activity hiển thị trên màn hình thiết bị. Lúc này, những tương tác giữ người dùng vẫn chưa được thiết lập, và Acitivity vẫ chưa chuyên sang trạng thái nhận focus.

• onResume(): Sự kiện này được gọi khi Acitivity bắt đầu tương tác với người dùng. Ở thời điểm này thì Acitivity của bạn được đặt trên cùng của ngăn xếp. Theo sau sự kiện này, có thể là sự kiện onPause().

• onPause(): Khi một Acitivity khác muốn dành quyền hiển thị và trạng thái focus thì Activity hiện hành sẽ gọi sự kiện onPause().

• onStop(): Sự kiện này được gọi khi Acitivity bị che khuất hoàn toàn bởi mộtAcitivity và Activity khác cũng dành được focus.

• onDestroy(): Đây là sự kiện cuối cùng được gọi trước khi Activity bị hủy hoàn toàn. Khi một Activity bị hủy nó sẽ không còn được lưu trong bộ nhớ nữa và không khởi động lại được

Câu 11: vòng đời của Activity? Với mỗi vòng đời Activity thường có 3 trạng thái sau:

1- Running (đang kích hoạt) 2- Paused (tạm dừng) 3- Stopped (dừng – không phải Destroyed) 1- Running (đang kích hoạt): Khi màn hình là Foreground ( Activity nằm trên

cùng ứng dụng và cho phép người sử dụng tương tác) 2- Paused (tạm dừng) : Activity bị mất focus nhưng mà vẫn nhìn thấy được

Activity này (Ví dụ bạn mở một Activity mới lên dưới dạng Dialog). Trường hợp này nó vẫn có khả năng bị hệ thống tự động “XỬ” trong tình huống bộ nhớ quá ít.

3- Stopped (dừng – không phải Destroyed): Activity mất focus và không nhìn thấy được (ví dụ bạn mở một Activity mới lên mà Full màn hình chẳng hạn). Trong trường hợp này nó có thể bị hệ thống “Xử” trong bất kỳ tình huống nào.

>>>Như vậy cả Paused hay Stopped đều có khả năng bị Destroyed (hủy) khi bộ nhớ cần cho việc khác ưu tiên hơn. Trong vòng đời của ứng dụng Android bạn cần phần biệt 2 loại sau:

Visible Lifetime và Foreground Lifetime - Visible Lifetime: Sảy ra từ sau khi gọi onStart –> cho tới lúc gọi onStop : trong trường hợp này

TA vẫn có thể thấy màn hình Activity (có thể tương tác khi nó là foreground, không tương tác được khi nó không phải foreground như đã giải thích ở trên)

- Foreground Lifetime: Sảy ra từ khi gọi onResume –> cho tới lúc gọi onPause : trong suốt thời gian này

Activity luôn nằm ở trên cùng và Ta có thể tương tác được với nó

câu 12: Hệ thống tổ chức các đối tượng trên Android? Lớp View và ViewGroup là hai lớp cơ sở, tạo ra các lớp con kế thùa từ chúng. Bản

thân ViewGroup lại được kế thừa từ lớp View. ViewGroup dùng để sắp xếp vị trí các đối

tượng View trên giao diện.

Đối tượng ViewGroup trên cùng là cha của các đối tượng View và ViewGroup bên

dưới. Đối tượng ViewGroup ở cấp 2, là con của đối tượng. ViewGroup cấp 1, nhưng cũng

là cha của những đối tượng View và ViewGroup bên dưới.

Như vậy, các đối tượng ViewGroup có thể chứa các đối tượng ViewGroup và View

khác, nhưng các đổi tượng View thì không thể.

Câu 13: Các cách lưu trữ trạng thái của Activity? Có hai cách để lương trữ thông tin trạng thái trong Activity :

Trong sự kiện onSaveInstanceState(Bundle), Trong sự kiện onPause() hoặc các sự kiện khác,

Dạng lưu trữ

Trong sự kiện onSaveInstanceState(Bundle),

Trong sự kiện onPause() hoặc các sự kiện khác

Cách thức lưu trữ

-bạn lưu trữ lại thông tin trạng thái trong đối tượng Bundle, và trong sự kiện onCreate(Bundle) bạn sẽ lấy lại các thông tin đã lưu trữ trước đó và hiển thị lên giao diện.

-bạn lưu lại thông tin trạng thái trong đối tượng SharePreferences, và trong sự kiện onCreate(Bundle) bạn sẽ đọc các thông tin đã lưu trữ và hiển thị lên giao diện.

Cách phân biệt

-lưu trữ tạm thời dũ liệu trong vòng đời của một ứng dụng, chúng ta nên sử dụng Bundle trong sự kiện onSaveInstance(Bundle): Trong trường hợp này dữ liệu sẽ được lưu trong bộ nhớ cho đến khi ứng dụng bị đóng.

-lưu trữ dữ liệu mang tính chất lâu dài và có chia sẻ giữa nhiều thể hiện của ứng dụng, chúng ta nên sử dụng SharePreference: Thông tin trạng thái này sẽ được lưu trữ trong bộ nhớ cho đến khi ứng dụng bị đóng.

Phần bài tập 1. Giải phương trình bậc 1, bậc 2 2. Tính ước số chung lớn nhất, bội số chung nhỏ nhất. 3. Viết chương trình nhập vào 1 số nguyên N, tính tổng S=1+2+3+N. Tìm ước số của N và

xét xem số N vừa nhập vào có phải là số nguyên tố hay không. 4. Tính diện tích, chu vi các hình tam giác, hình tròn, chữ nhật, hình thang 5. Tính điểm trung bình, điểm tổng kết, xếp loại học lực 6. Tìm số lớn nhất, số nhỏ nhất trong n số nhập từ bàn phím. 7. Các cách xử lý sự kiện giữa các Activity, thao tác với Toast, thao tác với Dialogs

Chúc các cưng thi tốt và đạt điểm cao !

Good luck and game over!@@ Sweetened NT D