반응형

이번 포스팅에서는 Android Studio에서 Library Project를 만들어서 Jar 파일로 추출하는 방법에 대해 알아보도록 하겠습니다. 

Android Library Project  Jar 파일로 추출

 

프로젝트를 하다 보면 프로젝트마다 공통적으로 사용하는 기능들이 있을 것입니다. 

이 기능들을 Jar 파일로 만들어서 본인이 사용하고 싶을 때 사용하면 참 편리하겠죠? 그 방법에 대해 알아보도록 하겠습니다.

 

1. 먼저 [New Project] 를 통해 새 Project를 만들고 build.grade 파일로 갑니다. 

   아래 그림처럼 2번 라인에 'apply plugin: 'com.android.library'라고 추가합니다. 

   즉, gradle에게 이 Project는 application이 아니라 library로 만들기 위해 구현하였다는 걸을 알려주는 겁니다. 

   library이므로 9번 라인에 applicationId를 삭제하시거나 주석처리해주시면 됩니다.

 

 

2. build.grade 파일에 이이서 아래 그림과 같이 입력을 합니다. 

   오래된 AndroidPlugin.jar 파일을 삭제하고 사용자가 지정한 폴더에 CustomLibrary.jar 파일을 생성하게 합니다.

 

 

3. build.grade 파일은 모두 작성하였습니다.

   이제 Android Studio 오른쪽에 있는 Gradle 영역을 마우스로 클릭합니다.   

 

Gradle 클릭

 

 

4. Gradle Projects가 실행을 하면 처음엔 아무것도 나타나지 않기 때문에 아래 그림처럼 새로고침 영역을 클릭합니다.

 

 

5. Android Studio가 새로고침을 완료하면 아래 그림처럼 Gradle Project들이 보일 것입니다.

   네모난 빨간 박스 순서대로 위에서 아래방향으로 클릭해 줍니다.

 

 

- 'other'에서 조금만 내리면 ' exportJar' 영역이 보이실 겁니다. 이 영역을 클릭을 합니다.

 

 

6. 'exportJar'를 클릭하게 되면 Gradle Console 창이 보이면서 Build를 진행합니다.

   Build가 이상 없이 완료되면 아래 그림처럼 'BUILD SUCCESSFUL'이라는 문구가 나타납니다.

  그럼 이제 Library Jar 파일이 완성됐습니다.

 

 

7. 이제 Jar 파일이 완성이 되었으니 실제 원하는 위치에 있는지 확인해 보겠습니다.

    짜잔~~ 제가 원하는 위치에 제가 정한 파일명으로 파일이 생성되었습니다.

    이 파일을 실제 Project의 'libs'폴더에 복사해서 붙여 넣기 해주시면 됩니다.

 

 

오늘 포스팅은 Android Library Project 파일을 만들고 Jar 파일로 생성하는 과정을 알아보았습니다.

실제로 어려운 과정이 아니니 한 번씩 해 보시길 바랍니다.

감사합니다.

반응형
반응형

이번 포스팅은 Fragment에 대하여 알아보도록 하겠습니다.


Fragment에 대하여...첫번째 이야기


소화면의 스마트 폰용으로 작성한 앱을 대화면의 태블릿에서 실행하면 공간이 너무 많이 낭비되어 썰렁해 보이며 넓은 화면의 장점을 사용할 수가 없습니다. 

그래서 태블릿같은 대화면에서는 화면을 분할하여 사용자에게 보여주면 대화면의 이점을 살릴 수가 있습니다.

그래서 화면을 분할하는데 이용되는 것이 바로 Fragment 입니다. 


1. 먼저 Fragment의 특징을 알아보도록 하겠습니다.

 - Fragment는 Activity에 배치되어 화면의 한 부분을 정의합니다.

 - Android 3.0 부터 지원됩니다.

 - 하나의 Activity는 여러개의 Fragment를 가질 수 있습니다.

 - 독립적인 모듈이고 Life Cycle을 가지지만, Activity의 Life Cycle 변화에따라 Fragment의 Life Cycle이 변경됩니다.

 - layout xml에서 view와 함께 배치할 수 있습니다.

 - 서로 다른 Activity에서 동일한 Fragment class를 이용할 수 있습니다.

 - 여러 Activity에서 재사용할 수 있습니다.



2. Fragment의 Life Cycle

 - Fragment는 Activity 내에 있는 FragmentManager에 의해 관리됩니다.

 - Fragment의 Life Cycle은 Activity의 Life Cycle이 변경됨에 따라 같이 변경됩니다.



- Fragment의 Life Cycle 과 FragmentManager의 상태와 비교하여 알아보도록 하겠습니다.


- Fragment의 Life Cycle은 Activity의 Life Cycle과 유사하지만 몇 가지 추가된 콜백이 더 있습니다.

  많은 콜백 중에 onCreate, onCreateView, onPause 콜백은 거의 필수적으로 구현해야 하며 나머지는 필요할 때만 구현하면 됩니다.

- Activity가 생성될 대 Fragment의 다음 콜백이 순서대로 호출되며 여기서 프래그먼트를 초기화 합니다.


- onAttach ~ Activity에 Fragment가 처음 부착될 때 호출됩니다.

- onCreate ~ Fragment가 생성될 때 시스템에서 됩니다. 이 단계에서는 Host Activity(Fragment를 호출하는 Activity)도 아직 초기화중인 상태이며 따라서 Activity의 컨트롤을 안전하게 참조할 수 없습니다. 

Activity가 완전히 초기화된 시점이 필요하면 onActivityCreated 콜백을 사용해야 합니다.

- onCreateView시스템은 Fragment가 자신의 사용자 인터페이스를 처음으로 그릴 시간이 되면 이것을 호출합니다. Fragment에 맞는 UI를 그리려면 메서드에서 View를 반환해야 합니다. 이 단계에서 Fragment는 자신의 Layout을 생성한 후 Root View를 리턴합니다. 이 메서드는 Fragment 레이아웃의 루트입니다. Fragment가 UI를 제공하지 않는 경우 null을 반환하면 됩니다.

- onPause시스템이 이 메서드를 호출하는 것은 사용자가 Fragment를 떠난다는 것을 나타내는 첫 번째 신호입니다(다만 항상 Fragment가 소멸 중이라는 것을 의미하지는 않습니다). 일반적으로 여기에서 현재 사용자 세션을 넘어서 지속되어야 하는 변경 사항을 저장합니다(사용자가 돌아오지 않을 수 있기 때문입니다).

반응형
반응형

이번 포스팅에서는 Android의 Build 전과정에 대하여 알아보도록 하겠습니다. 


Android 빌드 전 과정


코딩을 통해 개발을 잘 하는 것도 중요하지만 Android가 어떻게 Build가 되는지 전 과정을 이해하고 

개발을 한다면 Resources 관리도 좀 더 효율적으로 할 수 있을 것입니다.



1. aapt (Asset Packaging Tool)



    - AndroidManifest.xml 이나 Activity를 위한 XML files 들과 같은 Application resource files을 compile하여 

       R.java 생성하고 특정 resource id로 매핑시킵니다.


    - resource들을 하나로 묶어 resources.ap_라는 중간 파일로 생성을 해 둡니다.



2. aidl tool



     - .aidl interface를 java interfaces로 만들어 줍니다.


3. java Compiler



    - aapt로 생성된 R.java 파일과 aidl로 생성된 java interfaces 

      그리고 작성한 소스코드를 컴파일해서 .class 파일로 만들어 줍니다. 


  ※ proguard 과정이 일어납니다.


4. dex



     - .class 파일들과 3rd party libraries 클래스 파일들을 

       모두 dalvik byte code를 위한 .dex 파일로 만들어 줍니다.


5. apkbuilder



     -  aapt가 생성한 resources.ap_라는 중간 파일과 .dex 파일을 하나로 묶어 .apk로 패키징 합니다.


6. jarsigner



    - debug 또는 release용 keystore로 signing을 합니다.


7. zipalign (release mode)



    - Release mode로 sign하면 zipalign tool을 이용하여 align 시켜줍니다.


    - 최종 .apk를 aligning 하면 application이 디바이스에 작동 시에 memory usage를 감소 시킵니다.




참고 자료 : 찬영이의 블로그



반응형

+ Recent posts