Tổng quan về ứng dụng Android như sau:
- Được viết bằng Java, hiện tại google hỗ trợ thêm Kotlin
- Bộ công cụ Android SDK sẽ biên dịch code và file nguồn (như ảnh, âm thanh…) thành file có đuôi là APK tiện cho việc cài đặt trên điện thoại.
- Mỗi ứng dụng Android có vùng bảo mật riêng, nó được bảo vệ bằng những đặc điểm như sau:
+ HDH Android là hệ thống Linux đa người dùng, coi mỗi ứng dụng là một người dùng.
+ Mặc định hệ thống gán cho mỗi app 1 cái ID người dùng Linux duy nhất, cái ID này chỉ có sys mới dùng đc, app khác không thể biết và dùng được.
+ Mỗi tiến trình có 1 máy ảo riêng, vì thế ứng dụng chạy độc lập với nhau, không liên quan gì đến nhau.
+ Mỗi ứng dụng chạy trên 1 tiến trình riêng, Android sẽ chạy 1 tiến trình khi thành phần nào đó của ứng dụng cần được kích hoạt, và cái tiến trình đó bị hủy khi không cần nữa hoặc bộ nhớ hệ thống xuống thấp (xem thêm phần mức độ ưu tiên của các tiến trình).
+ Tham khảo thêm bài này để hiểu hơn https://stackoverflow.com/questions/9244318/android-sharedpreference-security (ở phần trả lời đầu tiên).
4. Nguyên lý hoạt động của Android là least privilege (cái này hơi khó dịch =)) nên mình để nguyên) tức là ứng dụng của bạn chỉ được sử dụng các thành phần đã xin phép từ trước, vì vậy ứng dụng của bạn không thế vào tùy tiện sử dụng các thành phần (tức là bạn cần xin phép trong Manifest). Nhưng cũng có cách chia sẻ dữ liệu từ 1 ứng dụng tới 1 ứng dụng khác hoặc truy cập vào 1 dịch vụ nào đó của hệ thống:
+ Chia sẻ dữ liệu từ 1 ứng dụng tới 1 ứng dụng khác: Cho 2 ứng dụng có cùng 1 ID người dùng Linux, khi này 2 ứng dụng có thể truy cập dữ liệu của nhau. Để tiết kiệm tài nguyên hệ thống ta có thể cho 2 ứng dụng này chạy trên 1 tiến trình (process) và cùng máy ảo luôn (nhưng cần phải có chứng thực giống nhau).
+ Truy cập vào 1 dịch vụ nào đó của hệ thống: Ta có thể lấy dữ liệu tin nhắn, danh bạ… Nhưng cần phải được người dùng cho phép. Cái permission có nhiều loại, nếu là loại nguy hiểm thì cần accept khi runtime (từ Android 6 trở đi).
Thành phần siêu cốt lõi của ứng dụng mà bạn cần phải nhớ
- Activity: Là một khu vực họat động.
- Service: Để chạy ngầm. Như tạo ứng dụng nghe nhạc,…
- Broadcast receiver: nghe ngóng sự kiện từ hệ thống…
- Content provider: Lấy dữ liệu từ app khác, hay cho app khác lấy dữ liệu từ app mình.
Tham khảo thêm trên trang chủ ở đây: https://developer.android.com/guide/components/fundamentals.html
Các bài viết không xem thì tiếc:
- Danh sách bluetooth profiles
- Lưu ý khi porting C/C++ sang Java
- Vòng đời Acivity trong android cơ bản
- LƯU Ý KHI ĐƯA APP LÊN APP STORE & TESTFLIGHT TỪ ĐÔ TRỊNH | dotrinh.com
- Làm sao thiết kế nhiều màn hình trong Android
- BẬT CHẾ ĐỘ DEVELOPER TRÊN THIẾT BỊ ANDROID
- Khảo sát mức lương lập trình viên trên thế giới
- FRAMEWORK GIÚP BẠN BẮT ĐẦU MỌI THỨ HIỆU QUẢ NHẤT
- CÁCH ĐĂNG BÀI LÊN WEBSITE TRONG 3 BƯỚC | DOTRINH
- Show Indicator trong Android | Hiển thị indicator trong Android
- 7 lời khuyên của Sam Altman để thành công
- CÁCH ĐĂNG SẢN PHẨM LÊN WEBSITE TRONG 3 BƯỚC VỚI WooCommerce
- Copy file vào điện thoại Android từ macOS 100% ez
- Dịch vụ sửa website tốt và dịch vụ sửa website giá rẻ ở đâu?
- Ghi chú các bản release ứng dụng Tepra LITE Android và iOS | dotrinh.com