1. 갤럭시 S4에서 /system/app/SBrowser.apk를 가져와서 unzip해도 classes.dex파일일 없다. ㅠㅜ; (원래 System APP들은 apk파일에 dex파일이 없다.)2. 그래서 /system/app폴더안의 sbrowser.odex파일을 가져와서 sbrowser.dex를 만들어야 한다.3. 먼저 /system/framework폴더안에 모든 jar를 system/framework폴더로 copy한다.4. 그리고 아래 절차를 따라서$ java -jar baksmali.jar -d system/framework -x phone.odex-> out 폴더에 smali format 으로 odex 해제$ java -jar smali.jar -o classes.dex out-> out 폴더를..
아래같은 복잡한 java코드를 reflection으로 어떻게 하는걸까? getInstance()가 있어서 복잡하군.. PopupWindowManager.getInstance().showBasicPopup(this, "Message", new View.OnClickListener(), new View.OnClickListener()); 이간단한 코드를 reflection으로 하는데는 아래처럼 복잡한 코드가 된다. ㅠㅜ try { Class clz = Class .forName("com.skplanet.ocb.util.PopupWindowManager"); if (clz == null) { return handle; } Method im = clz.getDeclaredMethod("getInstance");..
volatile이란 단어의 뜻은 "변덕스러운"이다. 다시 말하자면 "자주 변할 수 있다"로 생각할 수 있다. 프로그래밍 언어에서는 정의는 언어와 버전마다 다르지만, 대충은 "자주 변할 수 있는 놈이니 있는 그대로 잘 가져다써"정도로 생각을 하면 되겠다. 조금 더 엄밀히 정의를 하자면, (1) 특정 최적화에 주의해라, (2) 멀티 쓰레드 환경에서 주의해라, 정도의 의미를 준다고 보면 된다. Java에서는 어떤 의미를 가질까? volatile을 사용한 것과 하지 않은것의 차이는 뭘까? volatile의 버전마다의 차이는 뭘까? synchronization과 volatile의 차이는 뭘까? 이 의문들에 대해서 정리한 것은 다음과 같다. volatile을 사용하지 않은 변수: 마구 최적화가 될 수 있다. 재배치..
제목 그대로다. android SDK Manager에서 SDK Platform-Tools를 업데이트 받고 Eclipse로 들어갔더니 ADT를 업데이트 받으라고 해서 업데이트 받았다. 그런데 그다음부터 gen폴더, R.java를 지우면 자동으로 recreating안하고 에러만 난다. 모든 R을 가르키고 있는 코드는 에러메세지를 토해낸다. 181818 왜그런지 찾으러 구글을 1시간을 돌아다녔다. ㅠㅜ; 그런데 아래처럼 나랑 똑같은 케이스가 있더군.. ADT버전이 16인데 SDK Platform tools와 SDK Build-tools의 버전이 호환이 안되서 생긴문제다. 해결책은 SDK Manager로 다시 가서 업데이트를 받으면 된다.I had the same issue today after upgradin..
이번에 새로 출시된 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..