2012-09-28 42 views
16

Chúng tôi có một dự án C++ khá lớn mà chúng tôi xây dựng nền tảng chéo cho Android và iOS. Xcode sử dụng tất cả các lõi khi biên dịch và nhanh hơn nhiều (4-5x tùy thuộc vào máy). Có cách nào để cải thiện hiệu suất abismal của NDK? Bất kỳ tùy chọn đa CPU nào? Chúng tôi có các tiêu đề được biên dịch trước, nhưng có vẻ như với tôi đó là việc sử dụng các tài nguyên có lỗi.Làm thế nào để tăng tốc android ndk xây dựng

Vì vậy, mọi mẹo hoặc thủ thuật để tăng tốc thời gian xây dựng dự án android ndk sẽ được nhiều người đánh giá cao!

Trả lời

19

Bạn không bắt buộc phải sử dụng hệ thống xây dựng của Android để biên dịch; tất cả các công cụ đều có sẵn để sử dụng trong một Makefile (mặc dù bạn sẽ cần phải cẩn thận để thiết lập các đường dẫn, đường dẫn thư viện và các tùy chọn trình biên dịch).

Vì bạn có thể tạo Makefile của riêng mình thay vì sử dụng tập lệnh xây dựng mặc định, bạn có thể sử dụng tùy chọn thứ -jN để chỉ định số hoạt động đồng thời cần thực hiện.

+24

Lệnh 'ndk-build' lệnh riêng của mình đang sử dụng thực hiện. Bạn chỉ có thể sử dụng 'ndk-build -jN'. – kennytm

+4

@usman chữ N không phải là chữ, bạn cần đặt một số ở đó, được chọn dựa trên số lõi CPU trên hệ thống xây dựng của bạn. Ví dụ: -j4 – mah

+0

@kennyTM tôi đã làm j2. Cùng một lệnh xây dựng mọi thứ nhanh hơn trên hệ thống của bạn tôi – usman

1

Sau mảnh bulid.gradle cho thấy một ví dụ về -jNabifilters: (xem http://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.ExternalNativeNdkBuildOptions.htmlhttps://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.NdkOptions.html)

android { 
compileSdkVersion 21 
buildToolsVersion '25.0.3' 

defaultConfig { 
    applicationId "test" 
    minSdkVersion 21 
    targetSdkVersion 21 

    ndk { 
     moduleName "native_lib" 
     abiFilters 'armeabi-v7a', 'arm64-v8a' 
    } 
    externalNativeBuild { 
     ndkBuild { 
      arguments '-j4' 
     } 
    } 
    jackOptions { 
     enabled true 
    } 
}..... 
Các vấn đề liên quan