Android – Gradle을 이용하여 Android Library 만들기

Gradle을 이용하여 Android Library 만들기

Android Studio에서 새로운 프로젝트를 만들어준다. 이것은 실제 라이브러리 프로젝트가 아니라, TDD를 위한 껍대기라고 생각하면 된다.

이제 라이브러리 프로젝트를 만들어보자. New > Module로 새로운 라이브 프로젝트를 만들자.

Build 하기

$ gradle <lib>:build

만약 라이브러리 이름이 util이라면 아래와 같은 Command를 입력해준다.

$ gradle util:build

아무 이상없이 잘 빌드 되었다면 아래와 같은 결과를 확인 할 수 있다.

... 
:util:preCompileDebugUnitTestJava
:util:compileDebugUnitTestJava UP-TO-DATE
:util:compileDebugUnitTestSources UP-TO-DATE
:util:mockableAndroidJar
:util:assembleDebugUnitTest
:util:testDebug
:util:preCompileReleaseUnitTestJava
:util:compileReleaseUnitTestJava UP-TO-DATE
:util:compileReleaseUnitTestSources UP-TO-DATE
:util:assembleReleaseUnitTest
:util:testRelease
:util:test
:util:check
:util:build

BUILD SUCCESSFUL
$ cd util/build/outputs/aar/

위 폴더에서 util-debug.arr, util-release.arr를 확인 할 수 있다.

Depoloy 시키기

안드로이드 프로젝트의 /libs 폴더 안에 추가하자.
그리고 build.gradle파일을 아래와 같이 추가하자.

dependencies {
    compile 'package.name.of.your.aar:util@aar'
}

repositories{
    flatDir{
        dirs 'libs'
    }
}

추가가 정확히 되었다면 Tools > Android > Sync를 누르면 모든 작업이 완료된다.

AAR Format에 대해서

‘aar’ 번들은 Android Library Project에서 사용되는 배포 바이너리 파일이다.

파일 확장자는 항상 .arr로 끝나며, maven artifact 타입으로 잘 알려져있다. 사실 이 파일은 zip파일이며 아래와 같은 구조를 가진다.

  • /AndroidManifest.xml (mandatory)
  • /classes.jar (mandatory)
  • /res/ (mandatory)
  • /R.txt (mandatory)
  • /assets/ (optional)
  • /libs/*.jar (optional)
  • /jni//*.so (optional)
  • /proguard.txt (optional)
  • /lint.jar (optional)

참고

[Clojure] 패키지 포함하기 & 문서 보기

Clojure code is packaged in libraries. Each Clojure library belongs to a namespace,
which is analogous to a Java package. You can load a Clojure library with require:
클로저는 라이브러리로 묶을 수 있다. 각각의 클로저 라이브러리는 자바패키지와 유사한 개념인 이름 공간에 속하게 된다.
require를 사용하여 클로저 라이브러리를 불러들일 수 잇다.
[sourcecode langugage=”clojure”]
(require quoted-namespace-symbol)
[/sourcecode]

You can refer a namespace, creating mappings for all its names in your current namespace:
refer을 이용하여 현재 이름공간에서의 이름들을 새롭게 정의하여 매핑할 수 있다.
[sourcecode language=”clojure”]
(refer quoted-namespace-symbol)
[/sourcecode]

For convenience, the use function will require and refer a library in a single step:
편의성을 위해 use함수는 require과 refer를 한번에 사용할 수 있다.
[sourcecode langauge=”clojure”]
(use quoted-namespace-symbol)
[/sourcecode]

[iPhone] ALAssetsLibrary

i think how to make from NSAsserts Obj to image file..?
..
Assuming you already have access to an array of ALAsset Obj,

you can retrieve their URL like this :

[sourcecode language=”ObjC”]
NSData *assetData = [NSData dataWithContentsOfURL:someAsset.defaultRepresentation.url];
[/sourcecode]