본문 바로가기

Android

[Android] Annotation 사용법 및 종류 Java에서는 API의 의도를 애너테이션으로 명시해 결함 탐지에 활용하는 기법이 발달했다고 한다. 애너테이션은 Java표준 정의는 아니여서 FingBugs, Checker Framework 같은 도구에서 제공하는 애너테이션을 사용하거나 직접 선언해야 한다. 하지만 안드로이드 개발 환경인 Intellij IDEA는 별도로 애너테이션 패키지 라이브러리를 IDE에 제공한다. Android 환경은 일반적인 Java 환경보다 잠재적 문제의 소지가 많은데 그 원인중 하나는 성능상 이점을 위해 Enum, EnumSet보다 프리미티브 타입을 사용하는 점이다. (비트 플래그 연산 또는 int 타입 상수 사용; px, dp, color 등의 단위에 별도 타입을 부여하지 않고 사용; R 클래스가 각종 리소스를 int타입 아.. 더보기
시작, 리액티브 프로그래밍 - 기본개념 (옵저버블, 디스포저블, 스케쥴러) 리액티브 프로그래밍에 관한 책을 완주하며 정리하려고 한다. 참고하는 책은 이며, 일단 천천히 따라가볼 생각이다. 중요 개념 1. 옵저버블(Obserber) : 데이터의 출처 (source) - 모든것은 옵저버블과 시작된다. 기본적으로 데이터 스트림을 활용하는 범용 인터페이스이다. 옵저버블의 생성 Observable.just("First Item" , "Second Item"); 이렇게만 생성하면 영원히 전송되지 않는다. .just() 와 같은 도구로 생성하고, .subscribe() 로 호출해준다 누군가 구독해야 활성화가 된다. ! 1) 핫 옵저버블 : 생성되면서 내부적으로 아이템을 생성한다. 계속해서 업데이트 되는 형태의 경우가 해당됨 2) 콜드 옵저버블 : 구독하기 전까지는 아이템이 전송되지 않는다... 더보기
[Build error]Could not find method flatDir() for arguments android 블락은 module/build.gradle 위치에 넣어 줘야 한다. 예를 들어 프로젝트에 최상단에 있는 Project/build.gradle 에 넣으면 에러 발생됨 Add this in app/build.gradle file: repositories { flatDir { dirs 'libs' //this way we can find the .aar file in libs folder } } 더보기
Android 기본 Intent를 사용한 음악 재생 재생 시작 및 앱 시작 Intent intent=Intent.makeMainSelectorActivity(Intent.ACTION_MAIN, Intent.CATEGORY_APP_MUSIC); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); Intent i = new Intent("com.android.music.music.servicecommand"); i.putExtra("command", "play"); sendBroadcast(i); play 중인 노래 정지 AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); if (mAu.. 더보기
GCM->FCM Migration GCM은 더이상 사용할 수 없고, FCM으로 변경해주어야한다 아래 링크의 내용으로 client 단을 수정 할 수 있다. https://blog.naver.com/111222qwe/221489423043 GCM -> FCM 마이그레이션 다들 바꾸셨겠지만 오래된 플랫폼의 경우 아직도 구글 GCM을 활용한 푸시서비스 방식을 쓰고있습니다.이... blog.naver.com https://developers.google.com/cloud-messaging/android/android-migrate-fcm Migrate a GCM Client App for Android to Firebase Cloud Messaging | Cloud Messaging | Google Developers You can migrate.. 더보기
cordova 로 하이브리드 앱 만들기 cordova 환경 셋팅 * 먼저 Node.js가 설치되어 있어야 하며, 설치하고나서 한번 재부팅 해주어야 cmd가 먹힌다 1. window cmd창을 열어서 cordova 설치 시작 C:\>npm install -g cordova 2. 설치가 되었다면 재부팅 > cmd창 - 폴더와 패키지를 생성해본다 $ cordova create cordoraTest com.hj.test cordoraTest 3. platform 추가 $ cordova platform add ios $ cordova platform add android 4. build $ cordova build 5. run $ cordova run android 6. 완료 ! * 화면을 좀 바꿔볼까 ? 1. MainActivity.java > su.. 더보기
AndroidStudio로 .so file만들기 / encoding error C, cpp등으로 만들어진 라이브러리를 Android 에서 사용하려면 .os파일로 라이브러리화 해야 한다. 아래의 방법을 참조 했으며, 기존의 라이브러리를 일부 수정하여 재빌드만 하여 다시 so파일로 제작하면 되는 업무였기에 AndroidStudio 를 열어 1. NDK 도구 다운로드 - LLDB , CMake, NDK를 설치 2. 프로젝트를 생성하여 빌드 https://developer.android.com/ndk/guides?hl=ko NDK 시작하기 | Android NDK | Android Developers 네이티브 개발 키트(NDK)란 일련의 도구 모음으로 Android에서 C 및 C++ 코드를 사용할 수 있게 해주고, 플랫폼 라이브러리를 제공하여 네이티브 액티비티를 관리하고 센서 및 터치 입.. 더보기
WireShark/tPacketCapture 를 이용한 모바일 Packet 분석 패킷분석을 위해 Wireshark 를 오랜만에 이용해 봤다 이전회사에서 IMS 개발을 위해 이용했었는데 이번에는 특정 서비스를 하기위한 Soap 통신 분석을 위해 사용했다. WireShark 는 피씨 포트를 잡아 쉽게 이용 가능하지만 나는 모바일 앱상의 패킷 분석이 필요했으므로, 모바일 패킷을 뜨는(스캔) 방법과 함께 뜬 모바일 패킷을 WireShark로 분석하는 부분까지 함께 정리 모바일 패킷을 떠보려면 tPacketCapture라는 앱을 이용한다. 원하는 시점에 스캔을 스타트하고 정지 시켜 부분만 캡쳐 가능하다 캡쳐한 패킷로그 파일(.pcap)는 앱에서 제공하는 파일 경로에서 확인이 가능하고 안드로이드 스튜디오나 모바일을 외부 입력장치로 하여 파일 접근하여 빼내오면 간단하게 모바일 패킷 추출과정이 완.. 더보기