Mock SolutionJUnit 의 TestCase class에서는 Android 관련 API를 쓰지 못한다. 그래서, 이럴경우에 우린 Mockup을 만들어서 쓴다. 대표적인 PowerMockito를 static class를 Mock할때 쓴다.Add two lines above your test case class,@RunWith(PowerMockRunner.class) @PrepareForTest(TextUtils.class) public class YourTest { }And the setup code@Before public void setup() { PowerMockito.mockStatic(TextUtils.class); PowerMockito.when(TextUtils.isEmpty(any(..
To control who is able to receive the broadcast message, you can use the method sendBroadcast:public abstract void sendBroadcast (Intent intent, String receiverPermission)where you precise the name of the required permission. If the receiver does not declare this permission, it will not be able to get the message. For example, the broadcast sender can do:Intent broadcast = new Intent(this, MyBro..
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");..
Processing Ordered Broadcasts원문: http://android-developers.blogspot.com/2011/01/processing-ordered-broadcasts.html[이 포스트는 Bruno Albuquerque 에 의해 작성되었습니다. 그는 구글 브라질의 Belo Horizonte 오피스에서 근무하는 엔지니어 입니다. - Tim Bray] 제가 생각하기에 안드로이드 플랫폼 상에서 가장 흥미롭고 강력한 기능 중 하나는 바로 브로드 캐스트와 이를 구현한 BroadcastReceiver 클래스입니다. (이 클래스를 구현한 것을 앞으로는 '리시버' 라고 하겠습니다.) 그 중, 이 포스트 에서는 순서가 정해진 브로드캐스트 (Ordered Broadcast) 에 관해서 이야기..
Sharing a Remote ServiceRemote Service를 구현하고 공유하는것은 어렵지 않다. different apps들이 나의 service를 사용하게 할수 있다. 즉 Remote Service를 깨울수 있는 action명을 정의하고 타 앱들이 action명을 가지고 서비스를 호출하면 된다.그럼 Secure한 Remote Service공유는 어떻게 해야할까? Secure한 Remote Service공유의 정의는 다음과 같다. 특정 app만 나의 Remote Service를 띄우게 허락한다.Singing StratigiesAndroid Developer사이트에 보면 다음과 같은 내용이 있다.signature-based permissions enforcement를 사용하면 다른 applica..
Here are the console commands for installing/removing system apps in android console emulator, very easy ; ) You must have ROOT and console emulator, I found this very helpful, so I hope it helps others as well... __________________________________________________ ___________________________________ Install App to System: Place APK file in the root folder on your sd card. Open terminal and enter..