1. Trang chủ
  2. » Tất cả

Lập trình trên thiết bị di động

93 8 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Lập Trình Trên Thiết Bị Di Động
Tác giả Lê Hữu Toản
Trường học Cao đẳng Công nghiệp Nam Định
Chuyên ngành Công nghệ Thông Tin
Thể loại Giáo trình
Năm xuất bản 2020
Thành phố Nam Định
Định dạng
Số trang 93
Dung lượng 2,51 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • Bài 1: NHỮNG KIẾN THỨC CƠ BẢN VỀ THIẾT BỊ DI ĐỘNG VÀ LẬP TRÌNH CHO THIẾT BỊ DI ĐỘNG (6)
    • 1.1. Các thiết bị di động (6)
      • 1.1.1. Phân loại các thiết bị di động (6)
      • 1.1.2. Các hệ điều hành thiết bị di động thông minh (7)
      • 1.1.3. Xu hướng di động hóa (11)
    • 1.2. Tổng quan về lập trình cho thiết bị di động (13)
  • Bài 2: NHẬP MÔN LẬP TRÌNH ANDROID (15)
    • 2.1. Thiết bị Android - hệ điều hành và máy ảo (15)
      • 2.1.1. Giao diện và ứng dụng (15)
      • 2.1.2. Phát triển (17)
      • 2.1.3. Bảo mật và tính riêng tư (19)
      • 2.1.4. Máy ảo android (21)
    • 2.2. Lập trình cho thiết bị Android (23)
      • 2.2.1. Bộ phát triển phần mềm Android (Android SDK) (23)
      • 2.2.2. Môi trường phát triển (25)
  • Bài 3: GIAO DIỆN NGƯỜI DÙNG CỦA ỨNG DỤNG ANDROID (33)
    • 3.1. View và ViewGroup (33)
      • 3.1.1. LinearLayout (33)
      • 3.1.2. AbsoluteLayout (37)
      • 3.1.3. TableLayout (37)
      • 3.1.4. RelativeLayout (38)
      • 3.1.5. FrameLayout (40)
      • 3.1.6. ScrollView (41)
    • 3.2. Bố cục giao diện thích nghi với hướng màn hình (42)
      • 3.2.1. Thay đổi kích thước và vị trí (43)
      • 3.2.2. Điều khiển hướng của màn hình (45)
    • 3.3. Sử dụng trình đơn (Menu) (46)
      • 3.3.1. Trình đơn chính (48)
      • 3.3.2. Trình đơn ngữ cảnh (49)
    • 3.4. Sử dụng thanh tác vụ (Action Bar) (50)
    • 3.5. Xử lý sự kiện tương tác với các thành phần đồ họa (52)
      • 3.5.1. Nạp chồng hàm xử lý sự kiện của Activity (53)
      • 3.5.2. Đăng ký sự kiện cho từng View (53)
  • Bài 4: THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG VỚI CÁC VIEW CƠ BẢN (55)
    • 4.1. Sử dụng các View cơ bản trong Android (55)
    • 4.2. TimePicker và DatePicker (58)
    • 4.3. Hiển thị ảnh với ImageView và Gallery (63)
    • 4.4. Sử dụng ListView để hiển thị danh sách dài (67)
    • 4.5 Hiển thị nội dung trang web với WebView (70)
  • Bài 5: LƯU TRỮ DỮ LIỆU (73)
    • 5.1. Lưu trữ dữ liệu cố định với shared preferences (73)
    • 5.2. Lưu trữ dữ liệu với file trên bộ nhớ trong và bộ nhớ ngoài (76)
      • 5.2.1. Làm việc với file trong bộ nhớ trong (76)
      • 5.2.2. Làm việc với file trong bộ nhớ ngoài (79)
    • 5.3. CSDL SQLite trong ứng dụng Android (79)
  • Bài 6: GOOGLE PLAY STORE VÀ VIỆC PHÂN PHỐI ỨNG DỤNG (85)
    • 6.1. Chuẩn bị ứng dụng trước khi phân phối (85)
      • 6.1.2. Đánh số phiên bản phần mềm (85)
    • 6.2. Phân phối ứng dụng (89)
      • 6.2.1. Sử dụng công cụ adb (89)
      • 6.2.2. Phân phối trên web server (90)
      • 6.2.3. Phân phối trên Google Play Store (90)

Nội dung

Điện thoại di động thông minh smart phones - là các điện thoại được trang bị cấu hình tốt hơn, chạy hệ điều hành thông minh với SDK cho phép lập trình viên phát triển đa dạng các ứng dụ

NHỮNG KIẾN THỨC CƠ BẢN VỀ THIẾT BỊ DI ĐỘNG VÀ LẬP TRÌNH CHO THIẾT BỊ DI ĐỘNG

Các thiết bị di động

1.1.1 Phân loại các thiết bị di động

502 Bad GatewayUnable to reach the origin service The service may be down or it may not be responding to traffic from cloudflared

502 Bad GatewayUnable to reach the origin service The service may be down or it may not be responding to traffic from cloudflared

502 Bad GatewayUnable to reach the origin service The service may be down or it may not be responding to traffic from cloudflared

Về mặt phần mềm, các thiết bị này hầu như tương đương, vì vậy giáo trình có thể được gọi là "Lập trình cho điện thoại thông minh"

Biểu đồ dưới đây thể hiện tỷ lệ thị phần giữa Smart Phones và Featured Phones trong

3 năm gần đây, dữ liệu khảo sát trên tập người trưởng thành tại Hoa Kỳ (theo số liệu của PewSearchCenter, tháng 6 năm 2013):

• Thuê bao di động: 120 triệu

• Tỷ lệ người dùng smartphone: 21%

1.1.2 Các hệ điều hành thiết bị di động thông minh

Các hệ điều hành thiết bị di động hiện đại tích hợp nhiều tính năng của máy tính cá nhân như khả năng xử lý đa nhiệm, trình duyệt web, và các ứng dụng đa dạng Đồng thời, chúng cũng hỗ trợ các tính năng đặc trưng của thiết bị di động như màn hình cảm ứng, kết nối sóng di động GSM, CDMA cùng với công nghệ 3G/4G, Bluetooth, WiFi, GPS và Glonass để nâng cao trải nghiệm người dùng Ngoài ra, các hệ điều hành này còn tích hợp các chức năng như chụp ảnh, quay phim, nhận dạng giọng nói, ghi âm, chơi nhạc, NFC, và bộ phát hồng ngoại, giúp tối ưu hóa khả năng của thiết bị di động trong các hoạt động hàng ngày.

Những hệ điều hành di động phổ biến nhất hiện nay gồm có:

Android là hệ điều hành miễn phí, mã nguồn mở do Google phát triển dựa trên nền tảng Linux, dành cho các thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng Ban đầu, Android được phát triển bởi Tổng công ty Android với sự hỗ trợ tài chính từ Google và đã chính thức về tay Google vào năm 2005 Android ra mắt vào năm 2007 cùng với việc thành lập Liên minh thiết bị cầm tay mở nhằm thúc đẩy các tiêu chuẩn mở cho hệ sinh thái di động Chiếc điện thoại đầu tiên chạy Android được bán ra thị trường vào tháng 10 năm 2008.

Android có mã nguồn mở và được phát hành theo Giấy phép Apache, tạo điều kiện cho các nhà phát triển thiết bị, mạng di động và lập trình viên tự do điều chỉnh và phân phối hệ điều hành Chính nhờ vào mã nguồn mở cùng giấy phép linh hoạt này đã thúc đẩy sự sáng tạo và hợp tác trong cộng đồng phát triển Android Cộng đồng lập trình viên lớn mạnh liên tục viết các ứng dụng mở rộng chức năng thiết bị, chủ yếu sử dụng ngôn ngữ lập trình Java đã chỉnh sửa Tính đến tháng 10 năm 2012, nền tảng Android đã có hơn 700.000 ứng dụng và đạt khoảng 25 tỷ lượt tải từ Google Play, nâng cao đáng kể trải nghiệm người dùng và vị thế của Android trên thị trường di động.

Những yếu tố quan trọng đã đưa Android trở thành nền tảng điện thoại thông minh phổ biến nhất thế giới, vượt qua Symbian vào quý 4 năm 2010 Hệ điều hành Android đã thu hút sự quan tâm của các công ty công nghệ hàng đầu nhờ tính mở, khả năng tùy biến cao và kho ứng dụng phong phú, góp phần thúc đẩy sự phổ biến và phát triển mạnh mẽ của nền tảng này trên toàn cầu.

Android là hệ điều hành nhẹ nhàng, có khả năng tinh chỉnh cao, phù hợp chạy trên các thiết bị công nghệ cao như điện thoại, máy tính bảng, TV và máy chơi game Với khả năng mở rộng, Android thúc đẩy một cộng đồng lập trình viên và đam mê mã nguồn mở sáng tạo ra nhiều dự án bổ sung tính năng cao cấp, giúp người dùng tùy chỉnh theo sở thích hoặc đưa Android vào các thiết bị ban đầu sử dụng hệ điều hành khác Việc lựa chọn Android mang lại lợi thế về chi phí thấp và khả năng tùy biến linh hoạt, phù hợp thay thế hoặc nâng cấp hệ điều hành cho nhiều loại thiết bị khác nhau.

Vào quý 3 năm 2012, Android chiếm tới 75% thị phần điện thoại thông minh toàn cầu, với hơn 500 triệu thiết bị đã được kích hoạt và 1,3 triệu lượt kích hoạt mỗi ngày Sự thành công của hệ điều hành đã đưa Android trở thành mục tiêu trong các vụ kiện liên quan đến bằng sáng chế, góp phần vào cuộc chiến điện thoại thông minh giữa các công ty công nghệ lớn.

iOS là hệ điều hành dành cho các thiết bị di động của Apple, ban đầu được phát triển để chạy trên iPhone (gọi là iPhone OS) Sau này, hệ điều hành này đã mở rộng khả năng hoạt động trên nhiều thiết bị của Apple, bao gồm iPod Touch, iPad và Apple TV, nhằm nâng cao trải nghiệm người dùng và tối ưu hóa hiệu suất trên các thiết bị di động.

Vào năm 2011, App Store của Apple đã có khoảng 500.000 ứng dụng iOS và đạt tổng cộng hơn 15 tỷ lượt tải xuống Trong quý 4 năm 2010, hệ điều hành iOS chiếm khoảng 26% thị phần điện thoại thông minh, xếp sau hệ điều hành Android của Google và Symbian của Nokia.

Giao diện người dùng của iOS được xây dựng dựa trên khả năng thao tác bằng tay, cho phép người dùng dễ dàng tương tác với hệ điều hành thông qua nhiều động tác chạm trên màn hình cảm ứng của các thiết bị Apple.

Phiên bản mới nhất là: 6.1.4 (ra ngày 2/5/2013) dành riêng cho iPhone 5 và 6.1.3 (ra ngày 19/3/2013) cho các thiết bị iOS còn lại

BlackBerry OS là nền tảng phần mềm độc quyền do RIM phát triển dành cho dòng điện thoại BlackBerry, nổi bật với khả năng đa nhiệm và thiết kế dành cho các thiết bị nhập liệu đặc biệt như trackball hoặc màn hình cảm ứng Hệ điều hành này hỗ trợ các tiêu chuẩn như MIDP 1.0 và WAP 1.2, cho phép đồng bộ hóa không dây email và lịch với Microsoft Exchange Server và Lotus Domino Phiên bản OS 4 mới nhất tích hợp hỗ trợ MIDP 2.0, khả năng kích hoạt không dây hoàn toàn, cùng với đồng bộ hóa email, lịch, công việc, ghi chú và danh bạ với Exchange, cũng như khả năng kết hợp với Novell GroupWise và Lotus Notes thông qua BlackBerry Enterprise Server.

Các bản cập nhật cho BlackBerry OS có thể có nếu nhà mạng cung cấp thông qua dịch vụ BlackBerry OTASL

Các bên thứ ba có thể phát triển ứng dụng sử dụng API tư hữu của BlackBerry, góp phần mở rộng hệ sinh thái phần mềm Tuy nhiên, mọi ứng dụng tích hợp chức năng giới hạn đều bắt buộc phải qua quá trình chứng thực trước khi cài đặt để xác nhận danh tính của tác giả Mặc dù việc chứng thực giúp đảm bảo nguồn gốc và uy tín của ứng dụng, nó không đảm bảo tuyệt đối về tính an toàn và bảo mật của phần mềm, người dùng cần thận trọng khi cài đặt các ứng dụng từ các nguồn chưa rõ ràng.

BlackBerry OS, the next-generation operating system developed by BlackBerry Limited (formerly Research In Motion), is designed for both smartphones and tablets The latest device utilizing this OS is the premium BlackBerry Q10 smartphone.

Tổng quan về lập trình cho thiết bị di động

Trong lập trình ứng dụng di động truyền thống, nguyên tắc "tiết kiệm tối đa tài nguyên" luôn được đặt lên hàng đầu để tối ưu hóa độ phức tạp của tính toán và lượng bộ nhớ sử dụng Tuy nhiên, với sự phát triển nhanh chóng của phần cứng, các thiết bị di động hiện đại ngày nay có cấu hình mạnh mẽ với chip xử lý nhanh và dung lượng RAM lớn, giúp lập trình di động trở nên dễ dàng hơn bao giờ hết Các bộ kit phát triển của các nhà sản xuất hệ điều hành di động cũng thường tự động quản lý bộ nhớ, tiến trình, giúp lập trình viên giảm bớt gánh nặng tối ưu tài nguyên để tập trung vào việc phát triển tính năng như khi lập trình trên máy tính cá nhân.

Các thiết bị di động mang đặc trưng di động nhưng đi kèm nhiều thách thức như kết nối mạng không ổn định do vị trí, tốc độ di chuyển và hạ tầng mạng, yêu cầu lập trình viên phải tối ưu hóa quản lý tài nguyên để tiết kiệm pin Ngoài ra, sự phân mảnh về loại thiết bị, kích thước màn hình, độ phân giải và cấu hình phần cứng gây khó khăn trong quá trình kiểm thử ứng dụng.

Các hãng phát triển hệ điều hành di động cung cấp bộ kit phát triển phần mềm (SDK) và môi trường phát triển tích hợp (IDE) tiện lợi, giúp lập trình viên dễ dàng viết mã, biên dịch, gỡ lỗi, kiểm thử và xuất bản ứng dụng một cách hiệu quả.

Các thiết bị di động hiện đại vượt xa máy tính cá nhân với nhiều tính năng hỗ trợ tương tác như màn hình cảm ứng đa điểm, nhận diện giọng nói và cử chỉ, giúp người dùng thao tác dễ dàng Ngoài ra, các kết nối đa dạng như NFC, GPS, 3G, 4G, Bluetooth và IR mở rộng khả năng giao tiếp và chia sẻ dữ liệu Các cảm biến phong phú như cảm biến ánh sáng, cảm biến tiệm cận, la bàn, cảm biến chuyển động và gia tốc kế giúp nâng cao trải nghiệm người dùng Nhà lập trình có thể tận dụng các tính năng đặc trưng này để tạo ra ứng dụng tối ưu, mang lại trải nghiệm tốt nhất trên thiết bị di động.

Theo thị phần trên thị trường, ba hệ điều hành di động phổ biến nhất hiện nay là Android của Google, iOS của Apple và Windows Phone của Microsoft Các nhà phát triển thường tối ưu hóa ứng dụng cho cả ba nền tảng này để mở rộng khách hàng tiềm năng Mỗi hệ điều hành có cửa hàng ứng dụng chính thức như Google Play Store, Apple App Store và Windows Phone Store, cung cấp khả năng xuất bản ứng dụng miễn phí hoặc trả phí với chi phí phù hợp Đây là các kênh phân phối quan trọng giúp người phát triển tiếp cận lượng người dùng lớn, nâng cao khả năng thành công của ứng dụng trên thị trường di động.

Lập trình viên có thể sử dụng các thư viện lập trình đa nền để phát triển ứng dụng, trong đó các ứng dụng viết bằng HTML, CSS và Javascript là phổ biến nhất cho các nền tảng khác nhau Trình duyệt web trên thiết bị di động ngày nay tích hợp đầy đủ tính năng và hiệu năng, giúp chạy mượt mà các ứng dụng web hiện đại Ngoài ra, một ứng dụng web có thể được lưu trữ trên máy chủ hoặc đóng gói thành ứng dụng native cho từng hệ điều hành bằng các công cụ của các nhà phát triển thứ ba.

PhoneGap là công cụ đóng gói ứng dụng web cho thiết bị di động phổ biến nhất hiện nay, được phát triển bởi Nitobi và sau đó mua lại bởi Adobe Phần mềm này cho phép lập trình viên phát triển ứng dụng di động sử dụng các ngôn ngữ web phổ biến như HTML5, CSS3 và JavaScript Ngoài ra, PhoneGap còn có các tính năng bổ sung giúp truy cập vào lớp phần cứng của thiết bị như gia tốc kế, máy ảnh, GPS, từ đó đóng gói thành ứng dụng phù hợp với nhiều hệ điều hành như Android, iOS, Blackberry, BlackBerry 10, Windows Phone và Windows.

Các hệ điều hành như 8, Tizen và Bada đã hỗ trợ các ứng dụng loại này; tuy nhiên, nhược điểm chính là hiệu suất thấp hơn so với ứng dụng native, không đáp ứng được sự mượt mà khi sử dụng Ngoài ra, các ứng dụng này còn gặp khó khăn trong việc đảm bảo tính đồng nhất trên các trình duyệt web di động, dẫn đến việc có thể chạy hoặc hiển thị khác nhau trên các hệ điều hành và trình duyệt khác nhau.

Việc lựa chọn hệ điều hành hoặc thư viện phù hợp để phát triển ứng dụng phụ thuộc vào nhiều yếu tố như mục đích sử dụng, đối tượng người dùng, tiềm năng của hệ điều hành và các yêu cầu kỹ thuật cụ thể Ngoài ra, thói quen và kỹ năng của lập trình viên cũng ảnh hưởng đến quyết định này Trong khuôn khổ của bài viết, chúng tôi sẽ tập trung vào việc phát triển ứng dụng cho hệ điều hành di động phổ biến nhất hiện nay là Google's Android.

NHẬP MÔN LẬP TRÌNH ANDROID

Thiết bị Android - hệ điều hành và máy ảo

2.1.1 Giao diện và ứng dụng a Giao diện

Giao diện người dùng của Android dựa trên nguyên tắc tác động trực tiếp, sử dụng cảm ứng chạm giống như các hành động ngoài đời thực như vuốt, chạm, kéo dãn và thu lại để xử lý các đối tượng trên màn hình Hệ thống phản hồi nhanh chóng nhằm tạo ra trải nghiệm cảm ứng mượt mà, thường sử dụng tính năng rung của thiết bị để cung cấp phản hồi xúc giác cho người dùng Các cảm biến như gia tốc kế, con quay hồi chuyển và cảm biến khoảng cách được tích hợp để phản ứng với các hành động của người dùng, ví dụ như tự động điều chỉnh hướng hiển thị hoặc giúp người lái xe chơi đua bằng cách điều khiển thiết bị giống như vô-lăng.

Sau khi khởi động, thiết bị Android hiển thị màn hình chính giống như desktop trên máy tính, nơi chứa các biểu tượng ứng dụng và tiện ích (widget) giúp truy cập nhanh các tính năng và cập nhật nội dung tự động như dự báo thời tiết và tin tức Màn hình chính có thể gồm nhiều trang để người dùng vuốt chuyển đổi, và có khả năng tùy chỉnh cao về hình dáng, bố cục và hành vi theo sở thích cá nhân Người dùng còn có thể thay đổi chủ đề của màn hình chính hoặc bắt chước giao diện của các hệ điều hành khác như Windows Phone qua các ứng dụng trên Google Play hoặc kho ứng dụng khác Các nhà sản xuất và nhà mạng thường tùy biến giao diện của thiết bị Android để tạo điểm khác biệt so với các thương hiệu cạnh tranh.

Thanh trạng thái ở phía trên cùng màn hình hiển thị thông tin về thiết bị và trạng thái kết nối, giúp người dùng dễ dàng theo dõi tình hình của thiết bị Người dùng có thể kéo xuống để xem màn hình thông báo chứa các thông tin quan trọng hoặc cập nhật từ các ứng dụng như email và tin nhắn SMS mới mà không gây gián đoạn trải nghiệm Trong các phiên bản cũ, người dùng có thể nhấn vào thông báo để mở ứng dụng, trong khi các tính năng mới cho phép trả lời cuộc gọi nhỡ hoặc thực hiện các thao tác khác ngay trên thông báo Thông báo sẽ luôn hiển thị cho đến khi người dùng đọc hoặc xóa chúng, đảm bảo không bỏ lỡ dữ liệu quan trọng.

Hệ điều hành Android nổi bật với khả năng đa nhiệm, cho phép người dùng chạy nhiều ứng dụng cùng lúc một cách dễ dàng Việc chuyển đổi giữa các ứng dụng được thực hiện nhanh chóng chỉ bằng cách bấm và giữ phím Home để hiển thị danh sách các ứng dụng đang chạy Điều này giúp nâng cao trải nghiệm người dùng bằng sự thuận tiện và linh hoạt trong quản lý các phần mềm hoạt động cùng lúc.

Android ngày càng có nhiều ứng dụng của bên thứ ba được lựa chọn và phân phối qua các cửa hàng ứng dụng như Google Play và Amazon Appstore, giúp người dùng dễ dàng tải về và cập nhật Người dùng có thể tải trực tiếp các tập tin APK từ các trang web khác để cài đặt thủ công ngoài cửa hàng chính Cửa hàng Google Play cung cấp một nền tảng duyệt, tải xuống và cập nhật các ứng dụng do Google và các nhà phát triển thứ ba phát hành, mang lại sự tiện lợi và an toàn cho người dùng Android Các thiết bị Android được cài đặt sẵn Google Play, đảm bảo người dùng dễ dàng truy cập vào kho ứng dụng phong phú của hệ điều hành này.

Ứng dụng của bạn sẽ tự động lọc ra danh sách các ứng dụng tương thích phù hợp với thiết bị của người dùng dựa trên 15 điều kiện tương thích của Google Nhà phát triển có thể giới hạn phạm vi ứng dụng chỉ dành cho những nhà mạng hoặc quốc gia cố định để phù hợp với chiến lược kinh doanh Người dùng có quyền yêu cầu hoàn tiền nếu họ không hài lòng hoặc cảm thấy ứng dụng không phù hợp sau khi mua.

Chỉ sau 15 phút kể từ khi tải về, nhiều nhà mạng còn hỗ trợ mua giúp các ứng dụng trên Google Play và tính phí trực tiếp vào hóa đơn hàng tháng của người dùng Tính đến tháng 8 năm 2013, Google Play đã có hơn 975.000 ứng dụng dành cho Android, và số lượng lượt tải về từ cửa hàng này ước tính đạt gần 30 tỷ.

Các ứng dụng Android chủ yếu được phát triển bằng ngôn ngữ Java với sự hỗ trợ của Bộ phát triển phần mềm Android (SDK), gồm các công cụ như công cụ gỡ lỗi, thư viện phần mềm, bộ giả lập điện thoại dựa trên QEMU, tài liệu hướng dẫn, mã nguồn mẫu và hướng dẫn từng bước Môi trường phát triển tích hợp (IDE) chính thức là Eclipse kèm theo plugin Android Development Tools (ADT), giúp quá trình phát triển trở nên dễ dàng hơn Ngoài ra, còn có các công cụ phát triển khác như Bộ phát triển gốc dùng cho các ứng dụng hoặc phần mở rộng viết bằng C hoặc C++, Google App Inventor - môi trường đồ họa dành cho lập trình viên mới bắt đầu, và nhiều nền tảng ứng dụng web di động đa nền tảng phong phú.

Android được Google tự phát triển riêng và chỉ công bố mã nguồn sau khi các thay đổi và cập nhật hoàn thiện, đảm bảo tính ổn định Mã nguồn Android ban đầu thường chỉ thích hợp để chạy trên các thiết bị nhất định, chủ yếu dòng Nexus Ngoài ra, nhiều thiết bị Android còn chứa các thành phần có bản quyền do nhà sản xuất tích hợp, khiến việc tùy biến và phát triển thêm trở nên phức tạp hơn.

Android có hạt nhân dựa trên nhân Linux phiên bản 2.6, bắt đầu từ Android 4.0 Ice Cream Sandwich (bánh ngọt kẹp kem), với phiên bản 3.x trở đi Hệ điều hành này tích hợp middleware, thư viện và API viết bằng C, trong khi phần mềm ứng dụng hoạt động trên nền tảng dựa trên các thư viện tương thích với Java, dựa trên Apache Harmony.

Android sử dụng máy ảo Dalvik với trình biên dịch động để chạy mã dex (Dalvik Executable), thường được biên dịch sang Java bytecode nhằm tối ưu hiệu suất và khả năng tương thích Nền tảng phần cứng chính của Android là kiến trúc ARM, nhưng hệ điều hành này còn hỗ trợ x86 thông qua dự án Android x86 dành cho chip Intel Atom, cũng như Google TV sử dụng phiên bản Android x86 đặc biệt để phù hợp với các thiết bị truyền hình thông minh.

Nhân Linux sử dụng cho Android đã trải qua nhiều thay đổi về kiến trúc so với nhân Linux gốc, khiến việc chuyển đổi các ứng dụng và thư viện Linux gặp nhiều khó khăn Android không tích hợp sẵn X Window System và không hỗ trợ các thư viện GNU tiêu chuẩn, gây trở ngại cho việc chạy các phần mềm Linux truyền thống trên nền tảng này Tuy nhiên, các ứng dụng C đơn giản và thư viện SDL vẫn có thể được hỗ trợ bằng cách chèn các đoạn shim Java sử dụng kỹ thuật tương tự JNI, như trong quá trình chuyển đổi trò chơi Jagged Alliance 2 sang Android.

Google đã đóng góp một số tính năng về nhân Linux, điển hình là tính năng quản lý nguồn điện wakelock, nhưng bị những lập trình viên chính của nhân từ chối do lo ngại về việc Google không còn giữ cam kết bảo trì mã nguồn Vào tháng 4 năm 2010, Google thông báo sẽ tuyển hai nhân viên hợp tác với cộng đồng Linux; tuy nhiên, đến tháng 12 năm 2010, Greg Kroah-Hartman, người bảo trì nhân Linux ổn định, bày tỏ lo ngại rằng Google không còn muốn đóng góp các thay đổi của mình vào Linux dòng chính nữa Một số lập trình viên Android của Google cũng thể hiện sự thất vọng vì nhóm Android không còn nhiều người và phải đối mặt với nhiều nhiệm vụ khẩn cấp liên quan đến Android hơn.

Vào tháng 8 năm 2011, Linus Torvalds dự đoán rằng Linux và Android cuối cùng sẽ hợp nhất thành một nhân hệ điều hành chung, dự kiến hoàn thành trong 4 đến 5 năm tới Đến tháng 12 năm 2011, Greg Kroah-Hartman thông báo về việc kích hoạt Dự án Dòng chính Android, nhằm tích hợp một số driver, bản vá và tính năng của Android vào nhân Linux bắt đầu từ phiên bản Linux 3.3 Linux đã bổ sung tính năng autosleep và wakelocks từ phiên bản 3.5, giúp cải thiện quản lý năng lượng trên nhân Linux Bản cập nhật này cũng giới thiệu hai chế độ nghỉ: bộ nhớ và đĩa, phù hợp với các thiết bị khác nhau như smartphone và máy tính để bàn Quá trình hợp nhất sẽ hoàn tất vào nhân Linux 3.8, khi Google công khai mã nguồn mở bao gồm các đoạn thử nghiệm đưa Android về nhân Linux 3.8.

Bộ lưu trữ flash trên các thiết bị Android được chia thành nhiều phân vùng, như

Trong hệ điều hành Android, "/system" dành cho phần hệ điều hành và "/data" chứa dữ liệu người dùng cùng cài đặt ứng dụng Khác với các hệ điều hành Linux dành cho máy tính để bàn, người dùng Android không được phép truy cập root vào hệ thống, đặc biệt là các phân vùng nhạy cảm như "/system" thường được thiết lập chỉ đọc để bảo vệ hệ thống Tuy nhiên, quyền truy cập root có thể được đạt được thông qua việc khai thác các lỗ hổng bảo mật của Android, điều này thường được cộng đồng mã nguồn mở sử dụng để tùy chỉnh và nâng cao tính năng cho thiết bị, nhưng cũng là mục tiêu của các phần mềm độc hại và hacker nhằm cài đặt virus, phần mềm độc hại trên thiết bị Android.

Lập trình cho thiết bị Android

2.2.1 Bộ phát triển phần mềm Android (Android SDK)

Hệ sinh thái Android được cấu thành từ 3 thành phần tổng quan như sau:

- Hệ điều hành mã nguồn mở cho thiết bị nhúng

- Bộ công cụ phát triển phần mềm (mã nguồn mở) - Android SDK

- Các thiết bị (chủ yếu là điện thoại thông minh) chạy hệ điều hành Android với các ứng dụng được phát triển cho chúng

Android SDK là bộ phát triển phần mềm Android do Google cung cấp dưới dạng mã nguồn mở, giúp lập trình viên dễ dàng truy cập và tích hợp các tính năng của hệ điều hành Android SDK này cung cấp các công cụ cần thiết để phát triển ứng dụng mượt mà, tối ưu hóa chức năng và tăng cường trải nghiệm người dùng Nhờ Android SDK, nhà phát triển có thể dễ dàng xây dựng, kiểm thử và triển khai ứng dụng trên nhiều thiết bị Android khác nhau Với sự hỗ trợ mạnh mẽ từ Google, Android SDK là nền tảng quan trọng để tạo ra các ứng dụng di động chất lượng cao, phù hợp với các tiêu chuẩn của thị trường app hiện nay.

- Mạng điện thoại cho việc nghe gọi/SMS cũng như truy cập Internet: GSM/GRPS, EGDE, 3G, 4G, LTE

- Tập APIs cho các ứng dụng hướng vị trí (GPS, vị trí dựa trên kết nối mạng)

- Tích hợp ứng dụng bản đồ thành 1 thành phần của ứng dụng

- Kết nối mạng WiFi và kết nối điểm-tới-điểm (peer-to-peer)

- Các ứng dụng đa phương tiện: ghi hình, ghi âm với camera và microphone, phát nhạc, phát video

- Thư viện đa phương tiện vơi khả năng thu và phát nhiều loại audio và video, cũng như các ảnh tĩnh

- API truy cập đến các cảm biến: cảm biến gia tốc, tiệm cận, la bàn

- Thư viện cho việc sử dụng Bluetooth và NFC cho kết nối điểm-tới-điểm

- Chia sẻ dữ liệu và trao đổi dữ liệu giữa các ứng dụng

- API cho các kho dữ liệu chia sẻ như danh bạ, lịch, mạng xã hội, đa phương tiện

- Các ứng dụng/tác vụ chạy ngầm

- Các tiện ích (widget) trên màn hình chính và hình nền động

- Tích hợp khả năng tìm kiếm của ứng dụng vào công cụ tìm kiếm của hệ thống

- Trình duyệt HTML5 mã nguồn mở, dựa trên Webkit

- Bộ tăng tốc đồ họa bằng phần cứng (GPU) cho việc tối ưu hiệu năng hiển thị, bao gồm nhưng không giới hạn ở đồ họa 2D và 3D với OpenGL ES 2.0

- Hỗ trợ đa ngôn ngữ với cơ chế cung cấp tài nguyên đặc trưng

- Cơ chế sử dụng lại các thành phần của ứng dụng cũng như thay thế các ứng dụng sẵn có

- Lưu trữ và truy xuất dữ liệu với CSDL Sqlite 3.0

- Google Clound Message cho quản lý việc đẩy thống báo xuống thanh hệ thống

Sau khi tải về, bộ SDK đầy đủ cung cấp tất cả các thành phần cần thiết để viết code, gỡ rối, kiểm thử, biên dịch và xuất bản phần mềm, giúp lập trình viên phát triển ứng dụng một cách dễ dàng và hiệu quả.

Android API là các thư viện lõi trong bộ SDK, giúp lập trình viên truy xuất các thành phần của hệ điều hành một cách dễ dàng Các ứng dụng của Google được cài sẵn trên thiết bị cũng dựa trên các API này để phát triển và tối ưu hóa hiệu suất Việc nắm vững Android API là chìa khóa để phát triển các ứng dụng Android hiệu quả và đáp ứng nhu cầu người dùng.

- Công cụ phát triển: bao gồm các công cụ dùng cho việc biên dịch và gỡ rối ứng dụng

Bộ quản lý các thiết bị ảo và bộ giả lập thiết bị giúp các lập trình viên dễ dàng thử nghiệm ứng dụng trên nhiều thiết bị ảo cùng lúc Công cụ này cho phép chạy thử phần mềm trong môi trường giả lập trên máy tính cá nhân mà không cần thiết bị di động thật Nhờ đó, việc kiểm thử và phát triển ứng dụng trở nên nhanh chóng, tiết kiệm chi phí và dễ dàng kiểm tra tính tương thích trên các nền tảng khác nhau.

Bộ tài liệu tra cứu chi tiết cung cấp mô tả rõ ràng cùng hướng dẫn sử dụng cho tất cả các gói và lớp, giúp người dùng dễ dàng hiểu và áp dụng hiệu quả Ngoài ra, còn kèm theo các bài viết hữu ích khác nhằm hỗ trợ kiến thức và tối ưu hóa trải nghiệm sử dụng sản phẩm.

Bộ SDK đi kèm với các mã nguồn mẫu và ứng dụng ví dụ giúp minh họa các tính năng của Android cùng hướng dẫn chi tiết cách sử dụng API Để hỗ trợ người dùng Eclipse trong phát triển ứng dụng Android, Google đã phát triển trình cắm thêm Android Developer Tools (ADT), làm cho quá trình lập trình trở nên dễ dàng và thuận tiện hơn Chúng ta sẽ tìm hiểu kỹ hơn về trình cắm ADT trong các phần tiếp theo của tài liệu.

Các lớp phần mềm Android được tổ chức thành các phân lớp từ thấp đến cao nhằm đảm bảo sự đơn giản, tính dùng chung và bảo mật cho ứng dụng Các thư viện ở các lớp cao chủ yếu dựa vào dịch vụ của các lớp ngay bên dưới, ít phải truy cập trực tiếp vào API của các lớp thấp hơn Kiến trúc phần mềm Android được chia thành các tầng rõ ràng giúp tối ưu hóa khả năng mở rộng và quản lý hệ thống một cách hiệu quả.

Hạt nhân Linux (Linux kernel) là phần cốt lõi của hệ điều hành, bao gồm các dịch vụ lõi như trình điều khiển phần cứng, quản lý tiến trình, bộ nhớ, mạng, nguồn điện và bảo mật Nó hoạt động như lớp trừu tượng trung gian giữa phần cứng của thiết bị và các lớp phần mềm phía trên, đảm bảo hoạt động ổn định và hiệu quả của hệ thống Hạt nhân Linux đóng vai trò thiết yếu trong việc điều phối các tài nguyên phần cứng và cung cấp nền tảng cho các ứng dụng chạy trên hệ điều hành Linux.

Các thư viện (libraries) - chạy bên trên lớp hạt nhân, bao gồm các các thư viện lõi viết bằng C/C++ như libc và SSL, cũng như các thư viện như:

- Thư viện cho việc phát các loại dữ liệu âm thanh và hình ảnh

- Bộ quản lý bề mặt (surface manager) cho việc hiển thị đồ họa trên màn hình

- Các thư viện đồ họa bao gồm SGL và OpenGL cho đồ họa 2D và 3D

- SQLite cho các ứng dụng sử dụng CSDL

- SSL và WebKit cho việc tích hợp trình duyệt và bảo mật Internet

Bộ thực thi Android (Android runtime) là môi trường quan trọng giúp các ứng dụng Android hoạt động ổn định, bao gồm các thư viện lõi Android tương đương với thư viện lõi của Java và các thư viện dành riêng cho Android Ngoài ra, Android runtime còn tích hợp máy ảo Dalvik, đảm bảo khả năng chạy đa dạng ứng dụng một cách hiệu quả trên các thiết bị Android.

Bộ khung ứng dụng (Application framework) cung cấp tập hợp các lớp giúp phát triển ứng dụng Android hiệu quả Nó hỗ trợ giao tiếp với phần cứng thông qua các lớp bên dưới, đồng thời quản lý giao diện người dùng và các tài nguyên của ứng dụng Đây là thành phần quan trọng giúp lập trình viên xây dựng các ứng dụng Android một cách dễ dàng và tối ưu.

Lớp ứng dụng (Application layer) là nền tảng cho hầu hết các ứng dụng, bao gồm cả ứng dụng cài sẵn trong hệ điều hành và các ứng dụng của bên thứ ba, đều dựa trên lớp này bằng cách sử dụng chung tập API Các ứng dụng chạy trong bộ thực thi Android, sử dụng thư viện lõi và máy ảo Dalvik, và tận dụng các lớp cũng như dịch vụ được cung cấp bởi lớp Application Framework để vận hành và tương tác với hệ thống.

2.2.2 Môi trường phát triển Để có thể bắt đầu lập trình ứng dụng cho hệ điều hành Android, bạn cần ít nhất các thứ sau:

Bộ phát triển phần mềm Android (Android SDK) là tập hợp các công cụ phát triển do Google phát triển, bao gồm các Android API cần thiết để xây dựng ứng dụng Android Các Android API này được tải xuống riêng biệt thông qua các công cụ trong SDK, giúp nhà phát triển dễ dàng tích hợp các chức năng và dịch vụ của Android vào ứng dụng của mình Việc sử dụng Android SDK là bước quan trọng để tạo ra các ứng dụng chất lượng cao, đáp ứng tiêu chuẩn của hệ điều hành Android.

Môi trường phát triển tích hợp (IDE) hỗ trợ lập trình Android với các tính năng như tự động định dạng, hoàn thiện mã và kết nối dễ dàng với Android SDK để biên dịch, gỡ rối và xuất bản ứng dụng hiệu quả Các IDE phổ biến dành cho phát triển Android bao gồm Eclipse (với plugin ADT của Google), IntelliJ IDEA và Android Studio, giúp quá trình lập trình trở nên thuận tiện và chuyên nghiệp hơn.

Thiết bị chạy Android, thường là điện thoại thông minh sử dụng hệ điều hành Android, được dùng để thử nghiệm ứng dụng trong quá trình phát triển Bạn cũng có thể sử dụng trình giả lập Android đi kèm trong bộ kit phát triển nếu không có thiết bị thật, tuy nhiên hiệu năng của trình giả lập thường thấp và một số tác vụ liên quan đến phần cứng như lập trình đa phương tiện hoặc truy xuất cảm biến có thể không chạy được Hầu hết các ví dụ trong tài liệu này đều hoạt động tốt trên cả thiết bị thật và trình giả lập; trong trường hợp mã nguồn không chạy được trên giả lập, sẽ có chú thích riêng để hướng dẫn xử lý.

*) Tải và cài đặt môi trường SDK, IDE

Bạn có thể dễ dàng lấy được bộ công cụ phát triển Android đầy đủ và đã được cấu hình sẵn bằng cách tải gói Eclipse đã tích hợp sẵn trình cắm ADT (Android Developer Tool) của Google tại địa chỉ http://developer.android.com/sdk/index.html Để tải xuống, bạn chỉ cần chọn "Download the SDK (ADT Bundle for {OS})", giúp tiết kiệm thời gian và đảm bảo môi trường phát triển Android được thiết lập nhanh chóng, thuận tiện.

GIAO DIỆN NGƯỜI DÙNG CỦA ỨNG DỤNG ANDROID

THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG VỚI CÁC VIEW CƠ BẢN

LƯU TRỮ DỮ LIỆU

GOOGLE PLAY STORE VÀ VIỆC PHÂN PHỐI ỨNG DỤNG

Ngày đăng: 04/02/2023, 08:00

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w