Zalo Inbox

Hướng Dẫn Chi Tiết về Android.bp và Soong Build System trong AOSP (2)


  • author-image

    devlinux

  • blog-tag aaosp, aosp
  • blog-comment 0 Bình luận
  • blog-comment 32 Views
  • created-date 17 Feb, 2025
blog-image


Shared library là một phần quan trọng trong hệ thống AOSP, được sử dụng để chia sẻ mã nguồn giữa các ứng dụng và module. Bài viết này hướng dẫn cách tạo một shared library đơn giản bằng cách sử dụng Android.bp, bao gồm các hàm cộng, trừ, nhân, chia và tính tổng, cùng với chương trình test trong cùng một tệp Android.bp

4. Tạo Shared Library

4.1. Tạo file mã nguồn

Di chuyển tới thư mục path-to-android-source/external/helloworld ở ví dụ trước. Tạo tệp mã nguồn tại vị trí:

  • include/my_shared_lib.h
  • src/my_shared_lib.cpp
  • src/hello_world.cpp

4.1.1. my_shared_lib.h

Tạo tệp my_shared_lib.h trong thư mục include để khai báo các hàm cộng, trừ, nhân, chia.

// src/my_shared_lib.cpp

#ifndef MY_SHARED_LIB_H
#define MY_SHARED_LIB_H

int add(int a, int b);
int subtract(int a, int b);
int multiply(int a, int b);
int divide(int a, int b);

#endif // MY_SHARED_LIB_H

4.1.2. my_shared_lib.cpp

Tạo một tệp mã nguồn my_shared_lib.cpp trong thư mục src để định nghĩa các hàm cộng, trừ, nhân, chia.

// include/my_shared_lib.h

#include "my_shared_lib.h"

int add(int a, int b) {
    return a + b;
}

int subtract(int a, int b) {
    return a - b;
}

int multiply(int a, int b) {
    return a * b;
}

int divide(int a, int b) {
    if (b != 0) {
        return a / b;
    } else {
        return 0;
    }
}

4.1.3. Chương Trình Hello World

Sửa lại chương trình "Hello World" sử dụng shared library my_shared_lib để thực hiện các phép toán cộng, trừ, nhân, chia.

// src/hello_world.cpp

#include <iostream>
#include "my_shared_lib.h"

int main() {
    int a = 10, b = 5;

    std::cout << "Hello, World!" << std::endl;

    std::cout << "Addition: " << add(a, b) << std::endl;
    std::cout << "Subtraction: " << subtract(a, b) << std::endl;
    std::cout << "Multiplication: " << multiply(a, b) << std::endl;
    std::cout << "Division: " << divide(a, b) << std::endl;

    return 0;
}

4.1.4. Android.bp

Đây là cách cấu hình tệp Android.bp để build shared library và chương trình "Hello World".


cc_library_shared {
    name: "my_shared_lib",
    srcs: ["src/my_shared_lib.cpp"],
    include_dirs: ["external/helloworld/include"],
}

cc_binary {
    name: "hello_world",
    srcs: ["src/hello_world.cpp"],
    shared_libs: ["my_shared_lib"],
}

4.1.5. Build và Kiểm Tra

Thiết lập môi trường build của AOSP.

source build/envsetup.sh
lunch aosp_rpi4_car-ap3a-userdebug

Chạy lệnh để build.

mmm my_shared_lib
m hello_world

5. Kết luận

Trong hướng dẫn này, bạn đã học cách tạo một shared library với các hàm cộng, trừ, nhân, chia và tích hợp nó vào một chương trình "Hello World" trong AOSP sử dụng tệp Android.bp. Bạn cũng đã biết cách build và kiểm tra kết quả cũng như xử lý các lỗi phổ biến liên quan đến quá trình này.

Ví dụ này không chỉ giúp bạn làm quen với cách tạo shared library mà còn cho thấy cách cấu hình và sử dụng chúng trong môi trường phát triển Android.

author_photo
devlinux

0 Bình luận