2012-02-21 3 views
2

이것은 진짜 멍청한 질문입니다. 저는 같은 구성 요소를 많이 사용하는 100 개의 앱을 만드는 회사에서 일합니다. 빌드시 약간의 커스터마이징이 있습니다. 효율성을 높이기 위해 속도를 높이고 싶습니다. 대부분의 사용자 정의는 런타임시 서버에서 데이터를 다운로드하여 수행됩니다.Android 빌드 프로세스의 속도 향상

우리가 .apk 파일을 완성 할 수있는 가장 빠른 시간은 약 15 분입니다. 이 프로세스에는 패키지 이름, 아이콘 및 몇 가지 문자열 리소스 변경이 포함됩니다. 그러나 당신이 실시간 살인자가 될 수있는 하루에 15-20 개의 앱을 다룰 때 새로운 코드를 작성하는 데 시간을 낭비하게됩니다.

Maven 또는 Gradle을 사용하여 빌드 프로세스를 간소화했으나 실제로 빌드 타임을 줄이는 가장 좋은 방법인지는 잘 모르겠습니다. 솔직히 나는 그들이 적절한 도구인지 아닌지조차 모릅니다.

이 도구 중 하나를 사용하면 내가 찾고있는 것을 달성 할 수 있는지 또는 빌드 시간을 줄이려는 다른 방법이 있다면 누군가에게 설명해 주실 수 있습니까? 어떤 제안이라도 인정 될 것입니다. 멀티 코어 시스템에서 만들어 사용

답변

3

를 제공하여 코어 사이의 빌드 프로세스를 분리, 그것의 가능성을 수 있습니다 Unix/Windows 쉘 스크립트를 사용하여 일괄 빌드 프로세스.

maven-properties-plugin과 android-maven-plugin을 함께 사용하면 쉽게 구현할 수 있습니다. android-maven-plugin 지원 리소스 필터링. 빌드 프로세스 동안 각 빌드주기에 대한 사용자 정의 된 특성을 여러 특성 파일로 정의 할 수 있습니다. android-maven-plugin은 외부 특성 파일에서이 값을 읽고 AndroidManifest.xml 및 res/values ​​/ strings.xml. android-maven-plugin은 안드로이드 라이브러리 프로젝트를 완벽하게 지원하여 일반적인 안드로이드 코드를 추출/중앙화하고 쉽게 관리 할 수 ​​있습니다.

동일한 안드로이드 프로젝트에서 다른 패키지/앱 이름, 앱 아이콘 및 string.xml의 일부 리소스로 5 개의 apk 배포판을 만들고 싶다면 쉘 스크립트를 만들 수 있습니다. mvn deploy 5 번 실행, 매번 복사 할 때마다 customize.properties 파일을 적절한 다른 icon.png 파일과 함께 프로젝트 디렉토리에 복사하고 기존 파일을 덮어 씁니다. 이것은 사용자 상호 작용이 필요없는 종단 간 자동 빌드 배치 처리를 제공합니다.

MorseFlash 샘플 프로젝트는 android-maven-plugin에서 사용하는 리소스 필터링을 검사합니다.

+0

좋은 설명과 내 MorseFlash 예제 응용 프로그램을 연결해 주셔서 감사합니다 .-) –

+0

@Manfred Moser, 샘플 프로젝트를 주셔서 감사합니다. 개발자가 안드로이드 메이븐 플러그인을 처음 접할 때 개발자의 삶을 더 편하게 만듭니다 :) – yorkw

+0

@yorkw, 입력 및 프로젝트 예제에 대해 감사드립니다.이것은 매우 유용합니다. 이제 나는 어떤 방향으로 일해야하는지 안다. 고마워! – Rymnel

0

시도하고 확실히 오른쪽 방향 일부 명령 줄 메이븐이나 개미와 같은 도구를 구축 채택

make -j<x> command 
+0

의견을 보내 주셔서 감사합니다. 그러나 이것은 내가 찾고있는 것이 아닙니다. 아마도 내 말씨가 틀렸다. 빌드 할 때 리소스와 패키지 이름을 빠르게 바꿀 수있는 방법을 찾고있었습니다. – Rymnel

0

Android Maven Plugin에서 사용하는 것이 좋습니다. 앱이 약간의 맞춤 설정 만하는 경우 대부분의 작업을 한 번 빌드 한 외부 라이브러리로 옮기고 각 앱의 빌드시 맞춤 설정 만 시작해야합니다. 당신이 말하는 스케일로 쉽게 그럴 가치가 있습니다.

플러그인 사이트를 확인해 보시고 제가 처음으로 using Maven for Android development에 대해 쓴 것과 느낌을 얻으십시오.

+0

우수 추천! 그것이 내가 필요한 것 이상을 가지고있는 것처럼 보입니다. 서면으로 시간을내어 주셔서 감사합니다. – Rymnel