Bạn có thể thêm mã C và C++ vào dự án Android bằng cách đặt mã vào thư mục
cpp trong mô-đun dự án của mình. Khi bạn xây dựng dự án, mã
này được biên dịch thành một thư viện gốc mà Gradle có thể đóng gói bằng ứng dụng của bạn.
Sau đó, mã Java hoặc Kotlin có thể gọi các hàm trong thư viện gốc của bạn
thông qua Giao diện gốc Java (JNI). Để tìm hiểu thêm về cách sử dụng khung JNI,
hãy đọc các mẹo của JNI dành cho
Android.
Android Studio tương hỗ CMake, một công cụ tương thích với những dự án Bất Động Sản nhiều nền tảng và ndk-build, hoàn toàn có thể nhanh hơn CMake nhưng chỉ tương hỗ Android. Chúng tôi hiện không tương hỗ sử dụng cả CMake và ndk-build trong cùng một mô-đun .
Nếu bạn muốn nhập một thư viện chứa ndk-build hiện có vào dự án Bất Động Sản Android Studio của mình, hãy khám phá cách link Gradle với dự án Bất Động Sản thư viện gốc .
Trang này cho bạn biết cách thiết lập Android Studio bằng
các công cụ bản dựng cần thiết, tạo một dự án mới có hỗ trợ
C/C++ và thêm tệp C/C++ mới vào dự án của bạn.
Bạn đang đọc: Thêm mã C và C++ vào dự án của bạn | Android Developers
Thay vào đó, nếu bạn muốn thêm mã gốc vào một dự án Bất Động Sản hiện có, bạn cần phải làm theo những bước sau :
-
Tạo các tệp nguồn gốc mới và thêm các tệp đó
vào dự án Android Studio.- Bạn có thể bỏ qua bước này nếu đã có mã gốc hoặc muốn
nhập một thư viện gốc được tạo sẵn.
- Bạn có thể bỏ qua bước này nếu đã có mã gốc hoặc muốn
-
Định cấu hình CMake để
tích hợp mã nguồn gốc của bạn vào thư viện. Bạn cũng cần có tập lệnh bản dựng
này nếu đang nhập và liên kết với các thư viện
hoặc nền tảng được tạo sẵn.- Nếu một thư viện gốc hiện có của bạn đã có
tập lệnh bản dựngCMakeLists.txt
, hoặc sử dụng ndk-build và bao gồm
một tập lệnh bản dựngAndroid.mk
thì bạn có thể bỏ qua bước này.
- Nếu một thư viện gốc hiện có của bạn đã có
-
Định cấu hình
Gradle bằng cách cung cấp một đường dẫn cho tệp tập lệnh CMake hoặc ndk-build.
Gradle sẽ sử dụng tập lệnh bản dựng để nhập mã nguồn vào dự án Android
Studio của bạn và đóng gói thư viện gốc của bạn (tệp SO) vào
ứng dụng đó.
Sau khi định cấu hình dự án, bạn có thể truy cập vào các hàm gốc từ
mã Java hoặc Kotlin bằng khung JNI. Để xây dựng và chạy ứng dụng, bạn chỉ cần
nhấp vào Chạy .
Lưu ý: Nếu dự án hiện tại của bạn sử dụng công cụ ndkCompile
không còn được dùng nữa, bạn nên chuyển sang dùng CMake hoặc
ndk-build. Để tìm hiểu thêm, hãy chuyển đến phần về cách
Di chuyển từ ndkCompile.
Chú ý đến người dùng Gradle thử nghiệm: Hãy cân nhắc
việc di chuyển sang trình bổ trợ phiên bản 2.2.0 trở lên và sử dụng CMake hoặc ndk-build
để xây dựng thư viện gốc nếu có trường hợp sau đây áp dụng cho bạn: Dự án
gốc của bạn đã sử dụng CMake hoặc ndk-build; bạn muốn sử dụng phiên bản ổn định
của hệ thống xây dựng Gradle; hoặc bạn muốn được hỗ trợ cho các công cụ tiện ích bổ sung,
chẳng hạn như CCache.
Nếu không, bạn có thể tiếp tục sử dụng
phiên bản thử nghiệm của Gradle và trình bổ trợ Android.
Tóm Tắt
Tải NDK xuống và xây dựng các công cụ
Để biên dịch và gỡ lỗi mã gốc cho ứng dụng, bạn cần có những thành phần sau :
-
Native Development Kit
(NDK) dành cho Android: một bộ công cụ cho phép bạn sử dụng mã C và C++ với
Android, đồng thời cung cấp các thư viện nền tảng cho phép bạn quản lý các hoạt động gốc
và truy cập vào các thành phần thiết bị thực tế, chẳng hạn như cảm biến và
tính năng nhập bằng cách nhấn. -
CMake: một
công cụ bản dựng ngoài hoạt động cùng với Gradle để tạo thư viện
gốc của bạn. Nếu bạn chỉ định sử dụng bản dựng ndk thì không cần đến thành phần này. - LLDB: trình gỡ lỗi mà Android Studio sử dụng để gỡ lỗi mã gốc.
Để biết thông tin về cách setup những thành phần này, vui mắt xem phần Cài đặt và định thông số kỹ thuật NDK, CMake và LLDB .
Tạo dự án mới có hỗ trợ C/C++
Cách tạo một dự án Bất Động Sản mới có tương hỗ mã gốc cũng tựa như như cách tạo mọi dự án Bất Động Sản Android Studio khác, nhưng có thêm một bước nữa :
- Trong mục Chọn dự án của bạn trong trình hướng dẫn, chọn loại dự án C++ gốc.
- Nhấp vào Tiếp theo.
- Hoàn thành tất cả các trường khác trong mục tiếp theo của trình hướng dẫn.
- Nhấp vào Tiếp theo.
-
Trong mục Tùy chỉnh Hỗ trợ C++ của trình hướng dẫn, bạn có thể tùy chỉnh
dự án của mình với trường Tiêu chuẩn C++. Sử dụng danh sách thả xuống để
chọn quá trình chuẩn hóa C++ mà bạn muốn sử dụng. Chọn Chế độ mặc định cho
Chuỗi công cụ thì có nghĩa là sẽ sử dụng chế độ cài đặt CMake mặc định. - Nhấp vào Hoàn tất.
Sau khi Android Studio hoàn tất quá trình tạo dự án mới, hãy mở ngăn
Dự án ở phía bên trái của IDE và chọn
chế độ xem
Android. Như minh họa trong hình 2, Android Studio sẽ thêm nhóm cpp:
Lưu ý: Chế độ xem này không phản ánh hệ phân cấp tệp thực tế
trên ổ đĩa, mà nhóm các tệp tương tự nhau để tinh giản quá trình điều hướng trong dự án của bạn.
Nhóm cpp là nơi bạn có thể tìm thấy tất cả các tệp nguồn
mã gốc, tiêu đề, tập lệnh bản dựng cho CMake hoặc bản dựng ndk và các thư viện
có sẵn nằm trong dự án của bạn. Đối với các dự án mới, Android Studio
sẽ tạo một tệp nguồn C++ mẫu, native-lib.cpp
và đặt tệp đó
vào thư mục src/main/cpp/
của mô-đun ứng dụng. Mã mẫu này cung cấp một hàm C++ đơn giản, stringFromJNI()
,
hàm trả về chuỗi “Xin chào từ C++”. Bạn có thể tìm hiểu cách thêm tệp nguồn bổ sung
vào dự án trong mục hướng dẫn
Tạo tệp nguồn mã gốc mới.
Tương tự như cách các tệp build.gradle
cho Gradle biết cách xây dựng
ứng dụng, CMake và bản dựng ndk yêu cầu một tập lệnh bản dựng để biết cách xây dựng
thư viện gốc. Đối với các dự án mới, Android Studio sẽ tạo một tập lệnh bản dựng cho CMake,
CMakeLists.txt
và đặt tập lệnh này vào thư mục gốc của mô-đun.
Để tìm hiểu thêm về nội dung của tập lệnh bản dựng này, hãy đọc phần
Định cấu hình CMake.
Xây dựng và chạy ứng dụng mẫu
Khi bạn nhấp vào Chạy, Android Studio
sẽ xây dựng và chạy một ứng dụng hiển thị văn bản “Xin chào từ C++” trên
thiết bị hoặc trình mô phỏng Android của bạn. Phần tổng quan sau đây mô tả các sự kiện
xảy ra để xây dựng và chạy ứng dụng mẫu:
- Gradle yêu cầu tập lệnh bản dựng ngoài,
CMakeLists.txt
. - CMake thực hiện các lệnh trong tập lệnh bản dựng để biên dịch tệp nguồn C++,
native-lib.cpp
,
thành một thư viện đối tượng dùng chung và đặt tên
cho tệp này làlibnative-lib.so
, sau đó Gradle sẽ gói tệp này vào trong ứng dụng. - Trong thời gian chạy,
MainActivity
của ứng dụng sẽ tải thư viện gốc bằng cách sử dụng
System.loadLibrary()
. Hàm gốc của thư viện,
stringFromJNI()
, hiện đã có trong ứng dụng. -
MainActivity.onCreate()
gọistringFromJNI()
,
câu lệnh trả về “Xin chào từ C++” và dùng câu lệnh trả về này để cập nhậtTextView
.
Lưu ý: Tính năng Chạy
tức thì không tương thích với các thành phần của dự án được viết bằng mã gốc.
Nếu muốn xác định rằng Gradle đã gói thư viện gốc trong ứng dụng, bạn hoàn toàn có thể sử dụng Công cụ nghiên cứu và phân tích APK :
- Chọn Build (Xây dựng) > Build Bundles(s) / APK(s) ( (Xây dựng gói / tệp APK) > Build APK(s) (Xây dựng tệp APK)
- Chọn Build (Xây dựng) > Analyze APK (Phân tích APK).
- Chọn APK hoặc AAB từ thư mục
app/build/outputs/
và nhấp vào OK. - Như minh họa trong hình 3, bạn có thể thấy
libnative-lib.so
trong
cửa sổ Công cụ phân tích APK tronglib/
./
Mẹo: Nếu bạn muốn thử nghiệm với các ứng dụng Android khác
có sử dụng mã gốc, hãy nhấp vào File > New > Import Sample (Tệp > Mới > Nhập mẫu) rồi
chọn một dự án mẫu từ Danh sách Ndk.
Tạo tệp nguồn C/C++ mới
Để thêm tệp nguồn C / C + + mới vào dự án Bất Động Sản hiện có, hãy triển khai như sau :
- Nếu bạn chưa có thư mục
cpp/
trong nhóm tài nguyên
chính của ứng dụng, hãy tạo một thư mục như sau: - Mở ngăn Dự án từ bên trái của IDE và
chọn chế độ xem Dự án từ trình đơn thả xuống. - Điều hướng tới your-module > src, nhấp chuột phải vào
thư mục chính rồi chọn New >
Directory (Mới > Thư mục). - Nhập
cpp
làm tên thư mục và nhấp vào
OK. - Nhấp chuột phải vào thư mục
cpp/
rồi chọn New >
C/C++ Source File (Mới > Tệp nguồn C/C++). - Nhập tên cho tệp nguồn, chẳng hạn như
native-lib
. - Từ trình đơn thả xuống Loại, hãy chọn đuôi tệp
cho tệp nguồn, chẳng hạn như.cpp
.- Bạn có thể thêm các loại tệp khác vào trình đơn thả xuống, chẳng hạn như
.cxx
hoặc.hxx
, bằng cách nhấp vào phần Chỉnh sửa loại tệp
. Trong hộp thoại C/C++ bật lên,
hãy chọn một đuôi tệp khác từ trình đơn thả xuống Phần mở rộng nguồn và
Phần mở rộng tiêu đề rồi nhấp vào
OK.
- Bạn có thể thêm các loại tệp khác vào trình đơn thả xuống, chẳng hạn như
- Nếu bạn cũng muốn tạo tệp tiêu đề, hãy đánh dấu vào hộp đánh dấu Tạo
tiêu đề liên kết. - Nhấp vào OK.
Sau khi thêm những tệp C / C + + mới vào dự án Bất Động Sản, bạn vẫn cần định thông số kỹ thuật CMake để đưa những tệp này vào thư viện gốc .
Tài nguyên khác
Để tìm hiểu và khám phá thêm về cách tương hỗ mã C / C + + trong ứng dụng của bạn, hãy thử dùng tài nguyên sau đây .
Lớp học lập trình
- Tạo Hello-CMake với Android Studio,
một lớp học lập trình sẽ hướng dẫn cho bạn biết cách sử dụng mẫu Android Studio CMake để bắt đầu
phát triển dự án Android NDK
Source: https://final-blade.com
Category: Kiến thức Internet