Signing ProcessEditDebug Mode : Application 개발 및 테스트시 사용 Android SDK build tool에서 자체적으로 Keytool utility(in JDK)를 이용하여 debug key를 생성.Application을 compile할 때마다 Android의 build tool이 debug key와 Jarsigner utility(in JDK)를 이용하여 자체적으로 signing을 함.build tool이 이미 debug key의 alias와 password를 알고 있으므로, 개발자는 이를 알 필요가 없음.보통 Eclipse의 ADT Plug-in 또는 Ant의 debug optioned build script를 이용하여 자동적으로 수행됨.Release Mode :..
안드로이드 애플리케이션 패키지(apk)를 설치하기 위해서는 반드시 서명(signing)을 해야합니다. 서명되지 않은 애플리케이션을 설치하려고 하면 아래처럼 [INSTALL_PARSE_FAILED_NO_CERTIFICATES] 에러가 발생하게 됩니다.$>adb install ActivityLifecycleProject.apk178 KB/s (8585 bytes in 0.046s) pkg: /data/local/tmp/ActivityLifecycleProject.apkFailure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]애플리케이션 서명 여부 확인하기그럼 어떤 애플리케이션이 서명되었는지 여부는 어떻게 알 수 있을까요? 우선은 JDK에 포함된 jarsigner 명령을 ..
http://source.android.com/source/building-devices.html 위의 링크의 한국어 설명이다. 1. Driver Binary를 설치 아래 주소에서 Nexus Binary를 받아서 설치한다. 설치 방법은 Android Source에서 Driver binary를 풀어서 설치하면 된다. 설치하면 Android Source에 vendor밑에 driver가 설치가 된다. https://developers.google.com/android/nexus/drivers 2. Android Source Build Driver Binary를 Android Source에 설치했으면 이제 빌드를 하면 된다. 빌드 방법은 다음과 같다. jlee3$ . ./build/envsetup.sh jlee..
전 포스트에서 설명했던 여러 스레드 구현방법들은 비록 아무 문제가 없지만 구현방법이 복잡해서 코드를 읽기 힘들게 만드는 경향이 있었다. Background작업에 관한 모든 사항(스레드 객체 생성, 사용, UI스레드와 통신 등)이 Activity 코드에 포함 되고 특히 background 스레드가 UI위젯과 빈번한 통신을 할수록 Activity 코드의 복잡함은 점점 배가 된다. 안드로이드에서는 이런 문제를 해결하기 위해 API level 3 (1.5 version) 부터 AsyncTask라는 클래스를 제공하고 있다. AsyncTask클래스는 background작업을 위한 모든 일(스레드생성, 작업실행, UI와 통신 등)을 추상화 함으로 각각의 background작업을 객체 단위로 구현/관리 할 수 있게 ..
이번에 새로 출시된 Eclipse 4.2 Juno 에서는 기존에 사용하던 Jad 플러그인 JD-Eclipse 가 정상작동하지 않는다 업무적으로 사용함에 있어서 이 기능이동작하지 않는것은 상당히 큰 리스크라 구글링중 관련 패치법을 찾았다 JD-Eclipse의 class 파일 뷰어에 대한 기능강화 패치 플러그인 인듯한데 정확한 기능은 아직 파악하지 못했으나 이 플러그인을 적용하면 juno 에서 decompile 기능을 사용 할 수 있다 우선 첨부된 JD-Eclipse 와 Realignment fragment 를 다운 받는다. 원 다운로드 출처 JD-Eclipse – http://java.decompiler.free.fr/?q=jdeclipseRealignment fragment – http://java.de..
Javac 빌드하기 java를 하다가 보면 기본 library말고도 다른 library가 필요할때가 많다. 예를 들어서... import org.apache.http.client.CookieStore; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.protocol.HttpClientContext; 이런 클래스를 import를 하려면 javac를 다르게 설정해야한다. $ javac -classpath httpclient-4.2.3.jar:httpcore-4.2.2.jar Test.java $ java --cl..
안드로이드 응용프로그램은 Activity, Content Provider, Broadcast Receiver, Service 이렇게 4개로 구성되어있습니다.이번 포스트는 이중 마지막 Service 에 대해서 알아보겠습니다.안드로이드 Activity Life Cycle이 끝나면 해당 Activity는 안드로이드 Activity Stack으로 부터 삭제되고 다시 해당 Activity를 시작하면 onCreate부터 다시 시작된다. 그렇다면 내가 만든 Activity가 종료되어도 백그라운드에서 동작하게 하고 싶다면 어떻게 할까? 방법이 여러가지 있지만 일반적으로 생각해 낼수 있는 방법은 역기 Service를 실행시키는 방법이다. Service는 Activity와 다른 프로세스이다. 또는 여러 프로그램에서 동일한..
JNI 고급과정 JNI초급 과정에서 JNI header파일을 이용한 JNI를 배웠다. 그러나 JNI methods가 여러개 이면 어떻게 할까? 생각만 복잡해 보인다. 그래서 복잡한 JNI에서는 JNI_OnLoad같은 API를 사용하여 수동으로 native method를 등록한다. 먼저 java파일을 보자. 초급과정에서는 간단한 sum메소드를 구현해 봤는데 이번엔 추가로 String을 리턴해 주는 기능도 구현해 보자. ackage com.example.testjni; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.Menu; public class MainActivity ext..