MỤC LỤC
Android nhúng cung cấp tất cả lợi ích của Linux nhúng và bổ sung thêm giao diện thân thiện với người dùng cũng như môi trường lập trình quen thuộc. Nó được sử dụng trong nhiều ứng dụng khác nhau như bảng hiệu kỹ thuật số, thử nghiệm và đo lường, điểm bán hàng và hệ thống ô tô (chúng tôi sẽ tập trung vào phần sau của bài viết).
Để tích hợp Android vào một thiết bị nhúng, bạn sẽ cần phần cứng có khả năng chạy hệ điều hành cũng như gói hỗ trợ bo mạch cấu hình chính xác cả Android và nhân Linux. Điều quan trọng cần lưu ý là các thiết bị nhúng thường phải tuân theo các tiêu chuẩn cao hơn so với các sản phẩm dành cho người tiêu dùng vì chúng thường phải hoạt động trong điều kiện khắc nghiệt trong thời gian dài và có thể không có sự giám sát của con người. Bạn có thể tùy chỉnh kernel và cài đặt trình điều khiển cho thiết bị của mình và tất cả các công cụ phát triển Linux tiờu chuẩn đều cú sẵn, bao gồm cả tớnh năng hoàn hảo để theo dừi hiệu suất và theo dừi để theo dừi.
Vớ dụ: giới hạn quyền truy cập của người dùng chỉ vào các chương trình bạn cung cấp bằng cách bảo mật giao diện người dùng là một ví dụ điển hình về một chỉnh sửa nhỏ có thể nâng cao sản phẩm của bạn.
Ở trên lớp nhân Linux là tập các thư viện bao gồm WebKit – trình duyệt Web mã nguồn mở, được biết đến như thư viện libc, cơ sở dữ liệu SQLite – hữu dụng cho việc lưu trữ và chia sẻ dữ liệu ứng dụng, các thư viênj chơi và ghi âm audio, video, hay các thư viện SSL chiụ trách nhiệm bảo mật Internet…. android.os – Cung cấp các ứng dụng với quyền truy cập vào các dịch vụ của hệ điều hành bao gồm thông điệp, các dịch vụ hệ thống và các giao tiếp nội tại. Android Runtime (ART), cùng với người tiền nhiệm của nó là Dalvik, đóng vai trò quan trọng trong việc thực thi các ứng dụng trên hệ điều hành Android.
Sử dụng phương pháp Just-In-Time (JIT) compilation, nghĩa là nó chỉ biên dịch các phần cần thiết của mã ứng dụng thành mã máy ngay tại thời điểm ứng dụng được chạy. Sử dụng Dalvik Virtual Machine (DVM) để thực thi mã bytecode của ứng dụng Android (bytecode là mã trung gian được tạo ra từ mã nguồn gốc của ứng dụng). Cung cấp các tính năng cải tiến khác so với Dalvik, chẳng hạn như improved garbage collection (dọn rác) và hỗ trợ cho các kiến trúc bộ xử lý mới hơn.
Dịch vụ hệ thống là những thành phần cốt lừi của hệ điều hành Android, cung cấp các chức năng cơ bản để hỗ trợ hoạt động của ứng dụng và hệ thống. Framework Android là một tập hợp các lớp và API (Application Programming Interface) cung cấp cho các nhà phát triển các công cụ cần thiết để xây dựng các ứng dụng Android. Dịch vụ hệ thống cung cấp các chức năng cơ bản cần thiết cho hoạt động của ứng dụng và hệ thống, trong khi Framework Android cung cấp các công cụ cần thiết để xây dựng các ứng dụng.
Ví dụ, Framework Android sử dụng dịch vụ Activity Manager để quản lý vòng đời của các ứng dụng và sử dụng dịch vụ Resource Manager để quản lý các tài nguyên của hệ thống. Sự tương tác giữa Dịch vụ hệ thống và Framework Android là điều cần thiết để cung cấp một trải nghiệm người dùng mượt mà và hiệu quả cho các ứng dụng Android.
The Android SDK (software development kit) là một tập hợp các công cụ được sử dụng để phát triển ứng dụng cho Android. Android Virtual Device (AVD) là một thiết bị ảo, nó chạy với bộ giả lập Android (Android emulator). Nó làm việc với bộ giả lập để cung cấp một môi trường thiết bị ảo mà qua đó chúng ta có thể cài đặt và chạy ứng dụng Android giống như trên máy thật.
ADB, còn được gọi là Cầu gỡ lỗi Android, là một công cụ dòng lệnh chủ yếu dành cho các nhà phát triển để gỡ lỗi ứng dụng. Giờ đây, nó không bị giới hạn đối với các nhà phát triển và bạn có thể sử dụng nó để thực hiện một số việc hữu ích trên PC của mình, chẳng hạn như sao lưu và khôi phục Android bằng ADB, ADB cài đặt APK cho Android từ máy tính, khởi động lại điện thoại về Chế độ khôi phục và Bootloader, v.v. Bước 1: Đi tới trang https://developer.android.com/tools/adb?hl=vi và nhấp vào Tải xuống Công cụ nền tảng SDK cho Windows để nhận thư mục ZIP.
Lệnh này có thể xem danh sách các thiết bị Android đang giao tiếp với máy tính của bạn. Trên màn hình điện thoại của bạn, một dấu nhắc bật lên yêu cầu bạn cho phép truy cập Gỡ lỗi USB. Sau khi bật gỡ lỗi USB, bạn nên thực thi lại adb devices để liệt kê thiết bị của mình.
adb install <app name.apk> – cài đặt ứng dụng theo chương trình bằng tệp APK. phục hồi khởi động lại adb – khởi động lại thiết bị Android của bạn ở chế độ khôi phục.
Trong bài lần này chúng em sẽ sử dụng phương pháp gọi trực tiếp system call từ tầng application lý do chọn phương pháp này do không phải build lại aosp.Các phương pháp sử dụng AIDL và HIDL với HAL tạo service theo nhóm em tìm hiểu đều phải build lại aosp.Mà yêu cầu phần cứng để build aosp rất cao. Để xây dựng ứng dụng bằng phương pháp gọi system call từ tầng application cần phải xây dựng qua 3 giai đoạn. Trong giai đoạn này để bổ sung được driver hỗ trợ điều khiển led cần phải cài đặt trình biên dịch chéo sang kiến trúc đối tượng.Tiến hành biên dịch lại kernel để cung cấp mã nguồn cho driver.Sau đó biên dịch lại driver.
Sau khi đã tải về ta tiến hành biên dịch kernel.Ta tiến hành tải vể giấy phép của bản hệ điều hành này. Tiến hành thêm giấy phép tệp lineageos_rpi3_defconfig nằm trong đường dẫn arch/arm/configs/lineageos_rpi3_defconfig. Khi nhân đã được biên dịch thành công thự hiện viết chương trình điều khiển thiêt bị .Sử dụng công cụ nano tạo 1 file mã nguồn bằng trình điều khiển thiết bị bằng ngôn ngữ C.
Trên máy điện thoại android mở tính năng gỡ lỗi trên android USB debug tùy với từng máy khác nhau sẽ có các cách bật tính năng khác nhau. Mở công cụ Command Prompt tìm đến đường dẫn adb đã được cài đặt trên máy tính kết nối device với thiết bị. Nó cung cấp một số API để thực hiện giao tiếp giữa Java và ngôn ngữ bản địa, và có thể thực hiện các hàm trong chương trình Java được viết bằng ngôn ngữ bản địa.
Lý do chia phần Native và Java là vì các thư viện viết bằng ngôn ngữ Native có hiệu năng tốt hơn, và khi Java ra đời, nhiều chương trình, thư viện được viết bằng ngôn ngữ Native có thể sử dụng lại các mã Native này. 42 Sau khi thêm, thư mục sau sẽ xuất hiện và hàm JNI sẽ được tạo thành tệp gốc- lib.cpp đủ điều kiện. Sau đó, chúng ta có thể thấy các hàm được thêm tự động trong Native-lib và sửa đổi nội dung như sau.
Sau khi kết nối bảng phát triển, bạn có thể thấy thiết bị thực mà chúng tôi đang kết nối ở góc trên bên phải của Android Studio.
Phát triển với quyền truy cập thông qua trình quản lý dịch vụ, APP chỉ cần gửi yêu cầu đến trình quản lý dịch vụ và trình quản lý dịch vụ quản lý thống nhất quyền truy cập vào phần cứng. Máy chủ hệ thống là lối vào được hệ thống sử dụng để khởi động các dịch vụ. Nó sẽ khởi động tất cả các dịch vụ chúng ta cần trong hệ thống, vì vậy chúng ta sẽ đăng ký các dịch vụ mà chúng ta đã viết trong máy chủ hệ thống sau.
Bằng cách này, sau khi máy chủ hệ thống khởi động, dịch vụ của chúng tôi cũng sẽ bắt đầu. Quy trình tổng thể là APP truy vấn trình quản lý dịch vụ để nhận dịch vụ, sau đó trình quản lý dịch vụ yêu cầu máy chủ hệ thống sử dụng dịch vụ và gọi nội dung được viết bằng ngôn ngữ bản địa bên dưới Java, sau đó cung cấp phần bổ sung dịch vụ Android quá trình.