현재 Ant/ndk-build에서 Gradle/CMake로 프로젝트를 마이그레이션 중입니다. Android Studio에서 컴파일하는 것이 아니라 명령 줄에서 컴파일하고 있습니다. 이미 큰 프로젝트를 Gradle로 성공적으로 마이그레이션했습니다. 하지만 지금은 완성 된 APK가 아닌 최종 객체가 공유 객체 인 라이브러리 프로젝트를 마이그레이션해야합니다.Android 용 공유 객체 작성
그래서 APK가 발생하지는 않지만 공유 객체에만있는 Android 프로젝트를 컴파일하는 가장 좋은 방법은 무엇입니까? Gradle은 항상 나를 위해 APK를 컴파일하는 것처럼 보이지만이 경우에는 필요하지 않습니다. 그래서 난 그냥 here 설명한대로 CMake 사용해야합니까? 하지만 아마도 모든 SDK/NDK 업데이트로 변경 될 수있는 모든 종류의 내부 경로를 전달해야하기 때문에 복잡해 보입니다. CMake는 Gradle이 자동으로 자동으로 관리 할 수 있도록 업데이트 할 것입니다.
Android Studio를 사용하지 않고 명령 줄에서 Android 용 공유 객체를 컴파일하는 가장 좋은 방법은 무엇입니까? Gradle을 라이브러리 모드로 전환하여 APK를 어셈블하지 않는 방법이 있습니까?
"요람은 항상 나를 위해 APK를 컴파일하는 것처럼 보이지만이 경우에는 필요하지 않습니다."- 아니요. Gradle은 Gradle 플러그인을 통해 컴파일하도록 지시 한 내용을 컴파일합니다. "도서관 모드로 Gradle을 삽입하는 방법이 있을지 모릅니다."- Android 라이브러리 모듈은 https://developer.android.com/studio/projects/android-library.html을 참조하십시오. – CommonsWare
좋아,하지만 공유 객체를 컴파일하기 위해 특별히 고안된 플러그인이 있습니까? 아니면 여기에서 어떻게해야합니까? 연결된 Android 라이브러리 플러그인은 내가 원하지 않는 AAR 파일을 만들기 때문에 유용하지 않습니다. 난 그냥 * .c 파일을 추가 작업이 일어나지 않고 공유 객체로 컴파일하려고합니다. – Andreas
"* .c 파일 묶음을 추가 작업이없는 공유 객체로 컴파일하려고합니다."- 현대 Android 패턴은 공유 객체를 포함하는 AAR을 생성하는 것입니다 (사용하는 JNI 코드와 함께).), AAR은 적절한 메타 데이터 (예 : 버전 정보, 전이 의존성)가있는 아티팩트 저장소에 넣을 수 있습니다. 그것이 당신이 원하는 것이 아니라면, 그것은 당신의 선택입니다. 그러나 AFAIK Android Studio는 당신이 원하는 것을 지원하지 않으며, 나는 Gradle로 그것을하기위한 레시피가 없습니다. – CommonsWare