안드로이드 광고 영역 차지하기(깜박이지 않기) 액티비티 로딩시 광고(애드몹, 애드핏등)영역을 잡지 않으면, 깜박이면서 광고가 나타난다. 이 경우 사용자의 실수클릭을 유도 하므로 퇴출 될 수있다. 미리 영역을 잡아놓고 가도록 하자. android:layout_height="wrap_content"-->android:layout_height="50dp" 이렇게 해주면 된다. [안드로이드 공부]/애드 2015.08.25
서비스가 죽어도 자동으로 다시 실행하기 앱에 서비스를 등록해서 사용하고 있는데, 이러저러한 이유로 갑자기 앱이 죽어버리거나 서비스가 종료되면 정말 난감하다. 이럴 때는 @Override public int onStartCommand(Intent intent, int flags, int startId) { return super.onStartCommand(intent, this.START_STICKY, startId); } 위와 같이 onStartCommand를 사용하여 startService를 하도록 하며, START_STICKY 플래그를 쓰게 하면 죽어도 다시 살아나는 좀비 같은 존재가 된다. [안드로이드 공부]/안드로이드 공부 2015.08.24
[안드로이드스튜디오] LogCat 이전 로그와 비교하기 말 그대로 이전 로그와 현재 로그를 자동으로 비교 해준다. Logcat에서 처음 로그를 Ctrl + C 하고 지운뒤,다음 로그에서 우측 마우스를 누르고 Compare with Clipboard를 하면 아래와 같이 쉽게 비교 해준다. [안드로이드 공부]/안드로이드 스튜디오 2015.08.24
안드로이드 TTS 중복 읽기 방지 (2개 이상의 앱) 아이스크림 샌드위치 버전까지는 안드로이드에서 TTS를 사용할 때 setOnUtteranceCompletedListener를 사용했으나, 이후 버전 부터는 setOnUtteranceProgressListener를 사용해서 Speaking의 시작과 끝에 대응할 수 있다. 또한, HashMap을 사용하도록 한 것도 큰 변화의 특징이다. 1개의 앱에서만 TTS를 사용한다면 문제가 없지만, 만약 2개 이상의 앱에 TTS를 사용할 경우엔 중복 문제가 발생하게된다. 즉, 1번 앱에서 '동해물입니다.' 라고 끝나야하는데, 2번 앱에서 '백두산인가요'라고 입력 되었던 문구가 함께 울리게 되는 것이다. (2번 앱은 실행 후 꺼버렸음에도 불구하고) 이런 문제를 해결 하기 위해서 아래와 같은 조치가 필요하다. speak 할 .. [안드로이드 공부]/안드로이드 공부 2015.08.24
[안드로이드 스튜디오] minSdkVersion 지정 Holo 테마를 지정하니 API 11부터 지원한다는 메시지가 뜬다. minSDKVersion을 AndroidManifest.xml 파일에서 수정해주었다. 그래도 똑같은 메시지가 남아있다. 안드로이드 스튜디오에서는 다른가 싶어 minSdkVersion 검색해보았다. build.gradle 파일에서 키워드 발견하였다. defaultConfig { applicationId "com.google.a" minSdkVersion 11 targetSdkVersion 11 } 위와 같이 수정해 주니 해결되었다. (팁) 충돌 방지 위해 AndroidManifest.xml 에서는 uses-sdk 부분 삭제하는 것이 좋다. 그리고, 안드로이드 스튜디오 메뉴에서도 가능하다. app - 오른쪽 마우스 - Open Module .. [안드로이드 공부]/안드로이드 스튜디오 2015.08.22
브로드캐스트리시버 2개 이상 사용시, 부팅후 동적 재등록 1. 브로드캐스트리시버(BroadcastReceiver)를 사용해서 액티비티등에 다시 브로드캐스트를 보낼 수있다. 하지만, 만약 2개 이상의 브로드캐스트리시버를 등록할 경우엔 고려해야 할 점이 있다. public void registerR(){ IntentFilter filter = new IntentFilter(); filter.addAction(DO_1); registerReceiver(mIntentReceiver, filter); IntentFilter filterBoot = new IntentFilter(); filterBoot.addAction(DO_2); registerReceiver(mIntentReceiver, filterBoot); }위와같이 필터를 각각 만들어 주어야 하며, 리시버는 하.. [안드로이드 공부]/알림 2015.08.22
[안드로이드스튜디오] 구글 애널리스틱스(Analytics) 사용하기 1. Manifest.xml - 2. Build.grade 2.1 project build.gradledependencies { classpath 'com.android.tools.build:gradle:1.2.3' classpath 'com.google.gms:google-services:1.3.0-beta1' 2.2 app/build.gradleapply plugin: 'com.android.application'apply plugin: 'com.google.gms.google-services'....compile 'com.google.android.gms:play-services-analytics:7.3.0' 여기서 알아야 할 중요한 것 하나. admob 광고를 사용하기 위해서는 compile 'c.. [안드로이드 공부] 2015.08.20
애드몹 때문에 앱이 잘 죽는다면 proguard.txt파일 -keep public class com.google.ads.** { public *;} 추가 [안드로이드 공부]/애드 2015.08.19
[안드로이드스튜디오] 빌드시 자동으로 release signed apk 만들기 안드로이드 스튜디오에서 독립적인 작업인 Generate Signed APK를 해서 Release Apk를 만들 수 있지만, 빌드를 하면서 함께 Release APK를 만들려면 작업을 좀 더 해줘야 한다. 1. build.grade 에서 android { signingConfigs { config { keyPassword '비밀번호' storeFile file('/Users/xxx/개발키및툴/comostudio.jks') storePassword '비밀번호' keyAlias 'comostudio_release_key' } } 2. 빌드를 Debug 에서 Release로 바꾸기 안드로이드 스튜디오 맨 아래 왼쪽 버튼을 누른다. (빨간색 원) 그럼 아래 사진과 같이 메뉴가 펼쳐지는데 여기서 Build Vari.. [안드로이드 공부]/안드로이드 스튜디오 2015.08.19
안드로이드 릴리즈 버전 빌드시 unasinged, zipalign 안드로이드 스튜디오에서 릴리즈 버전으로 APK를 생성 하면 기본적으로 unasigned라고 표시되어 나온다. 이렇게 되면 구글 플레이에 배포 하지 못하므로 zipalign을 사용하여 Apk를 정렬 해줘야 한다. build.gradle에 release{... zipAlignEnabled true ...요렇게 넣어 주면 unasigned라는 딱지가 사라진다.만약 zipAlignEnabled 대신 zipAlign을 넣어 주면 gradle dsl method not found zipalign()요런 에러가 나오니 조심. [안드로이드 공부]/안드로이드 스튜디오 2015.08.18