Oppo Phone 에서 ADB를 통한 디버깅 시도시, 앱은 정상적으로 설치 된 것 같은데, 앱 실행이 안되는 경우가 있다. Logcat에서 확인 할 수 있는 에러 내용은 아래와 같다 2019-04-26 15:05:31.161 13941-13941/com.example.helloworld I/InstantRun: starting instant run server: is main process 2019-04-26 15:05:31.184 13941-13941/com.example.helloworld D/AndroidRuntime: Shutting down VM 2019-04-26 15:05:31.187 13941-13941/com.example.helloworld E/AndroidRuntime: FATAL ..
android에서 dialog를 생성해서 가로 길이를 화면에 꽉 차게 하려면? 처음에는 custom view의 최상한 Layout의 width를 match_parent로 하면 될줄 알았는데 쉽게 안되더라 dialog라는 놈 자체가 max width가 화면의 90% 정도로 정해져있는듯 이걸 해결하기 위해선 custom dialog의 theme을 바꿔줘야한다.Theme_Dialog... 로 바꾸면 결국 똑같고 나같은 경우는 android.R.style.Theme_Translucent_NoTitleBar_Fullscreen 를 해주었더니 생각했던 대로 구현이 되었다. default 생성자에서 내용을 this(context, android.R.style.Theme_Translucent_NoTitleBar_Ful..
위 사진은 굉장히 흥미로운 사진이다. 숫자로 구성된 String 텍스트를 무작위 위치에 배열 한 후, 각 텍스트에 대하여 Paint의 getTextBounds를 통해 차지하는 영역의 크기를 Rect로 받은 후, 해당 Rect를 이용하여 텍스트의 좌상단, 우하단에 붉은 점을 찍게 한 프로그램의 캡쳐본이다. 굉장한 사실은, 6, 8, 2, 11, 18, 13 등의 숫자를 잘 보면.. 빨간 점의 위치가 이상하다. "제대로 안찍혀 있다." 좌상단, 우하단에 찍힌 것이 아니라 이상한 위치에 찍혀있다. 이것이 버그인지 무엇인지 아직은 잘 모르겠다. 확실한 것은, getTextBounds 를 통해서 정확한 크기가 구해지지 않았다는 것이다. 헐~~~ measureText를 이용해야 하나??? 어찌해야할꼬~ --> 맙소..
Android의 SurfaceView를 이용하여 간단한 게임을 구현하고자 한다. 보통 다들 worker thread를 만들어서 holder에 lock을 걸었다가 풀어주면서 화면을 갱신해주는 방법을 쓰더라. 문제는, thread 내부의 무한 루프에서 발생한다. 무한 루프는, 계~~~~~~~~속 해서 돌며, CPU의 속도에 따라 도는 속도라 다르다. 따라서 빠른 CPU를 쓴다면 루프 속도가 빠를 것이고, 느린 CPU를 쓴다면 느릴 것이다. 그리고.. 무한 루프를 도는 동안에는 엄청나게 점유율이 높을 것이다.. 사람의 눈은 30fps면 웬만한 동작을 인지하는데 무리가 없기 때문에, 나는 surfaceview로 만든 게임을 30fps로 맞추고자 했다. 그렇게 해서 나온 소스는 다음과 같다. public clas..
안드로이드 스마트폰에서 화면이 켜지는 경우는 크게 두가지로 나뉜다. 1. HW Key에 의해 화면이 켜짐2. Software에 의해 화면이 켜짐 여기서 1. 하드웨어 키에 의해 화면이 켜지는 경우는 홈 버튼(Home button) / 파워 버튼(Power Button)으로 화면을 켜는 경우이며, 2. Software에 의해 켜지는 경우는 알람, 푸쉬메세지, 전화 등 여러 'Notification'이 들어 왔을 경우에 해당한다. 나는 이 중에 1번의 경우를 캐치하고 싶었다. 2번은 철저하게 배제하고.사용한 방법은 아래와 같다. 1) NotificationListenerService를 생성 후, Notifacation을 받을 경우 현재 시간을 SharedPreference에 저장한다.2) BroadcastR..
http://www.learn2crack.com/2014/11/reading-notification-using-notificationlistenerservice.html 완벽하다 정말 NotificationListnerService 외에도 LocalBroadcastManager 사용법 까지 알게 되어 좋다. 참고로 Notification Access는 폰마다 위치가 다르다.아래와 같이 열어주면 편하다. Intent intent = new Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS"); startActivity(intent); 추가적으로 NotificationListenerService를 통해 핸드폰 화면이 꺼져있을 때 메세지가 와서 해..
안드로이드 서비스 동작 중인지 파악하기 아래의 코드를 사용하면 된다. 나는 보통 static으로 선언하여 service 안에 넣는다. 예를 들어 service 이름이 'JHService' 라면JHService.isServiceRunning(); 하면 여부가 나온다. public static boolean isServiceRunning(Context context) { ActivityManager am = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE); for (RunningServiceInfo rsi : am.getRunningServices(Integer.MAX_VALUE)) { if ([서비스이름].class.getName()..
루팅된 폰에서만 가능 확실한 정보는 아니고, 대충 느끼기에.. 안드로이드 부팅 중 /system/app 또는 /system/priv-app 에 있는 apk들의 압축을 /data/data에 푸는듯 보인다. 즉, /system 안에 있는 애들을 지워주면 될 것 같은데.. 이 안에 있는 것을 지우려고 하면 mount가 read-only 로 돼있어서 지워지질 않는다. 따라서, 마운트를 바꿔준 후, 앱을 지우도록 하자 #su #mount -o rw,remount /system #cd /system/priv-app #rm -rf [App Name] 이후 재부팅 해서 /data/data 안을 보면 [AppName] 이 없는 것을 확인 할 수 있다. /system 안에서 찾을 수 없으니 부팅 중에 가져오지 않은 것이다..
- Total
- Today
- Yesterday
- source
- MFC
- Python
- AWS
- winapi
- NDK
- it
- 프로그래밍
- 드라이버
- jni강좌
- linux
- API
- C++
- Troubleshooting
- kering
- database
- gcc
- 리눅스
- driver
- android
- db
- algorithm
- 음악
- Visual C++
- Cloud
- java
- 안드로이드
- Quiz
- C
- jni
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |