programing

Android Jar 라이브러리

javaba 2021. 1. 15. 19:10
반응형

Android Jar 라이브러리


Android에서 사용할 수있는 jar 라이브러리 파일을 생성 할 수있는 프로젝트를 어떻게 설정합니까? 모든 프로젝트에서 사용자 지정 라이브러리를 만들고 싶습니다.

다른 몇 가지 질문 :

  1. 특정 버전의 Android SDK에 대해 컴파일해야합니까?
  2. Android 패키지가 jar 라이브러리에 대해 컴파일 될 때 코드 작업에 필요한 클래스가 기본 코드와 함께 APK로 컴파일됩니까? 아니면 전체 jar가 포함됩니까?
  3. 코드를 직접 통합하는 대신 jar를 사용하여 알아야 할 주목할만한 최적화 또는 함정이 있습니까?
  4. APK가 필요한 것처럼 항아리에 서명해야합니까?

Google은 공유 라이브러리를 처리하는 새로운 버전의 SDK를 출시했습니다!

https://developer.android.com/tools/projects/projects-eclipse.html#SettingUpLibraryProject

ADT 0.9.7 (2010 년 5 월)

라이브러리 프로젝트 :
ADT 플러그인은 이제 개발 중에 라이브러리 프로젝트 사용을 지원하며,이를 통해 공유 된 Android 애플리케이션 코드 및 리소스를 별도의 개발 프로젝트에 저장할 수 있습니다. 그런 다음 다른 Android 프로젝트에서 라이브러리 프로젝트를 참조 할 수 있으며 빌드시 도구는 공유 코드 및 리소스를 종속 애플리케이션의 일부로 컴파일합니다. 이 기능에 대한 자세한 정보는 ADT로 Eclipse에서 개발 문서에서 사용할 수 있습니다. Eclipse에서 개발하지 않는 경우 SDK Tools r6은 Ant 빌드 시스템을 통해 동등한 라이브러리 프로젝트 지원을 제공합니다.


Android 앱에서 작동하는 jar 파일을 만들기 위해 프로젝트 설정에서 특별히 수행해야 할 작업은 없습니다. Eclipse에서 일반 Java 프로젝트를 작성하십시오.

  1. Android에 대해 컴파일 할 필요가 전혀 없습니다. Android에 포함되지 않은 클래스를 참조하지 않는 한 모든 jar 파일을 포함 할 수 있습니다. Eclipse에서 Android 프로젝트의 빌드 경로에 jar 파일을 포함하면 자동으로 APK 파일에 포함됩니다.

  2. 확실하지는 않지만 jar 파일의 모든 클래스가 APK에 포함된다고 가정합니다.

  3. 항아리와 프로젝트에 직접 일부 클래스를 포함하는 것만으로 결과 APK에 차이가 있다고 생각하지 않습니다.


같은 질문을했습니다. Android에서 레이아웃을 내보내고 재사용 할 수 있습니까? 다음을 시도했습니다. XML 리소스가있는 프로젝트를 JAR 파일로 내 보낸 다음 R.layout을 통해 레이아웃에 액세스 해 봅니다. 물론 작동하지 않았습니다. R.layout.main이 정수 였기 때문에 호스트 프로젝트의 R.layout에 정의 된 단일 레이아웃 (relative.xml)과 동일한 정수입니다.

Android SDK는 레이아웃 xml 파일을 View 리소스에 압축하고 포함 된 JAR 파일의 XML 파일이 레이아웃 xml 파일이 아니므로 컴파일되지 않으며 R.layout에서 해당 파일과 연결된 ID가 없습니다.

프로젝트에서 레이아웃을 내보내려면 XML로 내보내고 외부 라이브러리의 일부가 아닌 레이아웃 리소스로 새 프로젝트에 가져와야합니다.

JAR에서 레이아웃을 재사용하려면 View의 하위 항목을 만들고 코드에서 레이아웃을 빌드해야합니다. 인스턴스화하고 생성 된 인스턴스를 활동보기로 설정하거나 활동보기에 인스턴스를 추가 할 수 있습니다.


이것은 나를 위해 일합니다 !!!. attrs.xmlR.java를 생성하는 리소스 (레이아웃, 문자열 등과 같은 다른 리소스)를 사용하는 라이브러리 프로젝트에서 애플리케이션으로 .jar 파일을 사용하려는 경우 . 이클립스에서 export->Java/Jar file->모든 출력 폴더 내보내기 로 이동하여 확인해야합니다 projects -> Finish. 이는 런타임 에이 jar를 사용하는 앱이 누락 된 clases 및 리소스에 대한 예외를 생성하지 않도록 보장합니다.

물론 항아리를 새 프로젝트에 포함하려면 이동하십시오. project properties-> Java build path -> Libraries -> Add external jar ->그리고 당신은 끝났습니다.

이 도움을 바랍니다!


jar 파일을 생성하려면 Eclipse의 Export 옵션을 사용해야합니다. 내보내기 대화 상자에서 java 및 하위 옵션 JAR을 선택하십시오. 몇 가지 선택이 필요한 곳에 마법사가 표시됩니다. jar 파일이 저장 될 위치를 지정해야합니다.

jar 파일을 처음 만들 때 만든 오류는 Android Manifest를 포함하는 것입니다. 생성 된 jar 파일을 추가 할 때 이중 Android 매니페스트의 충돌이 발생했습니다.


사용자 지정 방법을 사용하여 동적으로 R 파일에 도달 할 수 있습니다. 예제 링크는 다음과 같습니다.

배포 가능한 Jar 파일 내에서 Android 리소스 파일 패키징

public static int getResourseIdByName(String packageName, String className, String name) {
   Class r = null;
   int id = 0;
try {
    r = Class.forName(packageName + ".R");

    Class[] classes = r.getClasses();
    Class desireClass = null;

    for (int i = 0; i < classes.length; i++) {
        if(classes[i].getName().split("\\$")[1].equals(className)) {
            desireClass = classes[i];

            break;
        }
    }

    if(desireClass != null)
        id = desireClass.getField(name).getInt(desireClass);
} catch (ClassNotFoundException e) {
    e.printStackTrace();
} catch (IllegalArgumentException e) {
    e.printStackTrace();
} catch (SecurityException e) {
    e.printStackTrace();
} catch (IllegalAccessException e) {
    e.printStackTrace();
} catch (NoSuchFieldException e) {
    e.printStackTrace();
}

return id;
}

platform / android-XX / android.jar 파일 아래의 android.jar 파일을 보면 레이아웃 XML 항목이 포함되어 있으므로 하나도 만들 수 있습니다. 이 작업을 수행하는 방법과 다른 프로젝트에서 어떻게 참조하는지 정확히 모르겠습니다.

ReferenceURL : https://stackoverflow.com/questions/1983617/android-jar-libraries

반응형