selfstarter

How to make aar file in android studio 본문

App/Android

How to make aar file in android studio

selfstarter 2020. 2. 1. 18:07

How to make aar file in android studio

aar 파일 만드는 법

aar

  • Android Archive package(안드로이드 Library 압축 파일)
  • jar는 자바 프로젝트 압축 파일로 자바를 사용하면 사용가능한 라이브러리 형식이고, aar은 안드로이드에서만 사용가능한 라이브러리 이다
  • jar, arr은 zip으로 열 수 있다. 안에 class file, Manifest, jar library 등 라이브러리를 구성하는 요소가 들어가있다.

Create aar file in Android

  • Create Project Add no Activity 선택

  • AndroidManifest.xml에 최소한의 정보만 남겨둔다

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.s.myapplicationlib">
    </manifest>
  • Add Simple Class file

    public class TestClass {
      public TestClass() {
      }
      public int addTestValues(int a, int b) {
          return a + b;
      }
    }
  • build.gradle 수정

  • apply plugin : 'com.android.library' library로 변경

  • dependencies 도 필요없다면 삭제

    apply plugin: 'com.android.library'
    android {
      compileSdkVersion 29
      buildToolsVersion "29.0.0"
      defaultConfig {
          minSdkVersion 25
          targetSdkVersion 29
          versionCode 1
          versionName "1.0"
          testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
      }
    }
  • 오른쪽에 Gradle 선택하고 코끼리 아이콘 클릭

  • Command line에 assembleRelease을 입력하고 OK 클릭

  • assembleRelease는 release 버전의 aar 파일을 빌드하는 명령어이다

  • 빌드가 잘 되었다면 Run 탭에 Build Success가 보인다

  • 해당 프로젝트 위치에서 \build\outputs\arr 폴더 아래에 app-release.arr 라이브러리 파일이 생성된다.

Create new Project

  • 라이브러리를 적용시킬 새로운 프로젝트 생성
  • build.gradle 에서 dependencies 에 aar implementation 추가
  • build.gradle 에서 repositories 추가
implementation name:'TestLib', ext:'aar'

repositories {  
flatDir {  
dirs 'libs'  
}  
}
  • MainAcitivty에서 TestClass function 호출
public class MainActivity extends AppCompatActivity {

    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);  
    setContentView(R.layout.activity\_main);

    TestClass testClass = new TestClass();  
    Log.d("TEST\_LOG", "Result:"+testClass.addTestValues(1, 3));  
    }


}
Comments