Bài 1: Bắt đầu với Android Studio

Mục tiêu

  • Nắm được kiến thức cơ bản về hệ điều hành Android
  • Tạo thử 1 project
  • Cấu hình môi trường phát triển
  • Tạo Emulator để chạy thử chương trình

1. Hệ điều hành Android

  • Dựa trên linux
  • Phát triển bởi Android Inc.
  • Google mua lại vào năm 2005
  • Mã nguồn mở, giấy phép Apache
  • Hơn 2 triệu ứng dụng ở nhiều hạng mục khác nhau

2. Các phiên bản

androidversion

 

 

 

3. Ảnh hưởng gì tới DEV

  • Không thể chỉ dựa vào API level hỗ trợ tính năng gì
  • Cần phải có kế hoạch cụ thể
    • Kiểm tra sự hiện diện của tính năng
    • Xử lý runtime error nếu hàm bị fail và cung cấp các lựa chọn khác

4. Phần cứng hỗ trợ

  • ARM processor
  • Intel Atom line of x86 Processor

5. API level

  • Là phiên bản cụ thể các API của Android framework
  • Việc chỉ ra ứng dụng phát triển trên API phiên bản nào phụ thuộc vào mong muốn các features trên API đó có thể dùng trong app, bao gồm
    • Packages và classes có thể dùng
    • XML elements & attributes
    • Activities có thể được gọi
    • Các Permissions app có thể yêu cầu
    • Cách thức app phải yêu cầu permission (trước khi cài đặt hay trong khi chạy)
  • API level mới thì sẽ hỗ trợ nhiều tính năng mới nhưng app có thể không tương thích với các máy chạy OS cũ
  • Các bản cập nhật của Android đảm bảo tương thích ngược (các hàm được nâng cấp không bị remove đi mà đánh dấu là deprecated >> app vẫn sử dụng được API cũ)
  • Vấn đề lựa chọn API level sẽ đáp ứng nào rất quan trọng

6. Các thư viện hỗ trợ (support libraries)

  • Có một số APi mới quan trọng được đóng gói trong các thư viện hỗ trợ để cho phép các thiết bị chạy ở phiên bản cũ hơn có thể chạy được các API mới này.
  • Ex: Fragment giới thiệu trong API level 11 nhưng có thể được sử dụng ở thiết bị chạy OS thấp hơn thông qua việc sử dụng thư viện hỗ trợ

7. Kiến trúc Android

androidarchitecture

  • Inter-application communication: thông qua rich messaging system
  • Ví dụ: khi app muốn đáp ứng tính năng phone call thì không cần viết code từ đầu trên APP mà gọi sang phone app để thực hiện

8. Android Runtime

androidruntime

  • Mỗi ứng dụng chạy trên 1 Linux process
  • Mỗi Android process chạy trên 1 thực thể ART
  • Một app bị crash không ảnh hưởng tới app khác
  • Đảm bảo security hơn, khó khăn hơn để 1 process này truy cập vào tài nguyên của process khác nếu không được phép

9. Máy ảo Dalvik

  • ART: Ahead Of Time compiler
  • Dalvik: runtime environment, Just In Time compiler (compile khi ứng dụng thực thi)
  • Từ Android 5.0 ART thay thế hoàn toàn Dalvik
  • Android 7.0 Google bổ sung JIT compiler vào ART >> giảm thời gian cài đặt và kích thước mã nguồn được biên dịch

10. Android Multitasking

  • UI component người dùng đang tương tác trực tiếp sẽ được focus
  • UI ngoài view sẽ bị tự động suspend để tối ưu tài nguyên
  • Android hỗ trợ chạy đa luồng thông qua background thread và callback functions
  • Có notify khi app bị suspend >> cho phép xử lý cất lại trạng thái
  • Nên cài đặt các tác vụ mất thời gian ở background
  • Nếu luồng chính của app có tác vụ mất nhiều thời gian xử lý thì hệ thống sẽ tự động tắt tiến trình app đó và hiển thị message Application Not Respoding (ANR) cho người dùng.

11. Các công cụ để phát triển

  • Java SE Development Kit (JDK)
  • Android SDK
  • Android Studio
  • Android Virtual Device Manager

Ref: https://developer.android.com/studio/

12. Android studio

  • Phát hành lần đầu năm 2014
  • Thay thế Eclipse và ADT
  • Tích hợp trong 1 IDE, không phải tải nhiều plugin

adroidstudio

Android studio Menus

adroidstudiomenu

Android studio Tool Windows

adroidstudiotools

Emulator

androidemulator

  • Cung cấp giao diện như thiết bị thật
  • Cho phép thao tác gestures: tap, swipes, pinches…
  • Cho phép thực hiện các tính năng vật lý: quay thiết bị…
  • Cho phép cấu hình giả lập phần cứng: SD card, GPS, Camera…
  • Có thể chạy ở các chế độ bộ nhớ khác nhau
  • Thiết lập ở các chế độ kích thước màn hình khác nhau

13. Android SDK Manager

adnroidsdkandroidsdkdefault

14. Command line tools

  • Đi kèm với SDK Manager
  • Độc lập với API
  • Thao tác nhanh hơn: check & update, create emulator, format emulator’s SD card, build release package…

15. Android studio setting

androidstudiosetting

  • Appearance & Behavior
  • Keymap
  • Editor
  • Plugins
  • Version Control
  • Build, Execution,
  • Deployment
  • Languages & Frameworks
  • Tools

16. AVD Manager

avdmanager

  • Tool cho phép tạo emulator để test ứng dụng
  • Chỉ định các đặc tính: hardware profile, device model, API platform, ABI (application binary interface) của virtual image
  • Cấu hình: device’s name, emulated camera, network performance, Graphic performance, Memory…

17. Emulator controls

emulatorcontrols

  • Set GPS location for device.
  • Change status of device’s cellular connection.
  • Change status of device’s battery.
  • Place a phone call.
  • Send an SMS message.
  • Set miscellaneous AVD settings.

———————- END ————————–

Advertisements