2012-09-27 3 views
0

프로젝트 설정을 지정할 수있는 Eclipse 프로젝트에서 구성/등록 정보/XML 파일을 작성하고 싶습니다.안드로이드 설정/버전의 등록 정보 이름/코드

문맥은 내가 2 명의 사용자를위한 하나의 응용 프로그램을 가지고 있다는 것입니다. 그러나 그들은 다른 버전과 빌드 번호와 그 사용자를위한 특정 매개 변수를 가질 필요가 있습니다. 내가 원하는 것은 두 개의 구성 파일을 가지고 구성 파일 1 또는 2를 지정할 수 있어야한다는 것입니다. 까다로운 부분은 버전 코드/이름이 안드로이드 매니페스트에 지정되어 있다는 것입니다.

이렇게하는 가장 좋은 방법은 무엇입니까?

요구 사항 :

  1. 구성/속성을 사용하여 파일을 코드의 한 부분으로 지정합니다. (예 : 설정 1 또는 2)
  2. Android Manifest는 버전 코드 및 버전 이름에 대해이 파일을 참조 할 수 있습니다.
  3. 코드에서이 파일의 요소를 동적으로 참조 할 수 있습니다.
+0

Ant 또는 Maven을 사용하십시오. 예를 들어 [this] (http://maven-android-plugin-m2site.googlecode.com/svn/manifest-update-mojo.html)는 Maven이 수행하는 방법입니다. – yorkw

+0

다른 Maven 프로젝트가 있습니다. 불행히도이 경로로 이동하지 않았으며 프로젝트에 추가 할 수있는 확장 성이 필요한 항목을 찾고있었습니다. 아래에서 내 대답을 참조하십시오. 코멘트 주셔서 감사하지만, 메이븐 (Maven)은 이것을 능숙하게합니다. – Dave

답변

0

그래서이 작업을 수행하는 좋은 방법을 발견했습니다. 나는 그 안에 많은 리소스가있는 "구성"XML 파일을 만들었을뿐입니다.

예 :

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <integer name="version_code">6</integer> 
    <string name="build_version">1.5</string> 
     <string name="app_LOGO"> "R.drawable.my_logo"</string> 
</resources> 

다음 내 매니페스트에 내가

android:versionCode="@integer/version_code" 
    android:versionName="@string/build_version" 

이 다음 내가 구성 클래스를했다.

public class Configuration { 

    private int LOGO = 0; 


    public Configuration(Context cont){ 

     String myResourceId = cont.getResources().getString(R.string.app_LOGO); 
     String[] resourceParts = myResourceId.split("\\."); 
     String packName = cont.getPackageName(); 
     int logo = cont.getResources().getIdentifier(resourceParts[2],    resourceParts[1], packName); 

     setLogo(logo); 
    } 
    /** 
    * @return the logo 
    */ 
    public int getLogo() { 
     return LOGO; 
    } 
    /** 
    * set the Logo 
    */ 
    public void setLogo(int logo) { 
     LOGO = logo; 
    } 
} 

여기서는 내 활동의 컨텍스트가있는 Configuration 클래스를 호출하여 내 액티비티 onCreate 메소드 내부의 생성자로 전달됩니다. 매력처럼 작동합니다.

도움이 되었기를 바랍니다.

건배.