Özel durumumda, C++11 CMake kullanan çapraz platform bir proje uyguladım. Başlangıçta bu projeyi PC ( Windows , Unix ) üzerinde çalışmak üzere tasarladım, fakat şimdi fark ettim ki, her platformda iş mantığını yeniden uygulamaya koymadan mobil platformlarda da kullanabileceğimi fark ettim. Proje standart kütüphaneleri kullanıyor: Boost , Poco , OpenSSL , Protobuf .
Birkaç soruşturmanın ardından, Android yerli ve yönetilen kodu bir araya getirmek için kullanılan olağan bir mod olmadığı sonucuna vardım.
Android Studio'daki bir Gradle projesinde CMake kullanan yerel bir projeye referans eklemek mümkün müdür?
Komut satırında her şeyi derlersem ( Android Studio kullanmadığımı varsayarsak) NDK projeyi basit bir şekilde benimser mi?
Mümkünse, önerilir mi?
Android Studio'daki bir Gradle projesinde CMake kullanan yerel bir projeye referans eklemek mümkün müdür?
Google, cmake eklentisi ile birlikte gelen Android Studio 2.2'yi ilan ettiğinden, andan itibaren CMake projesine android projesine başvurmak mümkün. Bunu denedim ve blogumda yayınladım.
Komut satırında her şeyi derlersem (Android Studio'yu kullanmadığımı varsayarsak) NDK projeyi basit bir şekilde benimser mi?
Deneyimime göre, NDK'yı ayrı bir şekilde derledim ve android projesinde kullanılacak statik / paylaşımlı kitaplığı (.so dosyası) bağlarım. Mupdf'yi kullanarak PDF Reader'ı geliştirirken NDK kullandım
Bu yardımcı olur umarım.
Android stüdyo 2.2 ile mümkün olur, çoğunlukla gradle için android eklentisi mümkün kılar. Içindeki bazı örneklere bakabilirsiniz: https://github.com/googlesamples/android-ndk/tree/master-cmake
Android stüdyosu cmake komut dosyalarınızı doğrudan okur - yerli IDE'leri (Visual Studio veya XCode) için proje dosyaları üreten masaüstü sistemleri gibi hiçbir şey yoktur; Bu yüzden sonunda ve android stüdyosu için çalışması için mevcut cmake dosyalarınızı değiştirmeniz gerekebilir.
Doğru APK'yi oluşturduğunuz sürece komut satırı veya IDE çok fazla önemli değildir. Kaynak kodunu göndermeyi planlıyorsanız, projenizi IDE ile hazır hale getirmek cazip olur.