- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 재능이의 돈버는 일기
- StresslessLife
- K_JIN2SM
- 소소한 일상
- My Life Style & Memory a Box
- Blog's generation
- 공감 스토리
- 취객의 프로그래밍 연구실
- Love Me
- Dream Archive
- 세상에 발자취를 남기다 by kongmingu
- hanglesoul
- 카마의 IT 초행길
- 느리게.
- 미친듯이 즐겨보자..
- Joo studio
- Gonna be insane
- 악 다 날아갔어!! 갇대밋! 왓더...
- xopowo05
- 맑은공기희망운동
- 엔지니어 독립운동
- 혁준 블로그
- Simple in Complex with Simple
- 무의식이 의식을 지배한다
목록★─Programing/☆─Android (143)
드럼치는 프로그래머
- getBaseContext() : Activity와 관련되었을 때 사용 - getApplicationContext() : Service와 관련되었을 때 사용 [출처] http://success206.tistory.com/16
코드 난독화 및 최적화를 위한 툴로 Android 2.3인 진저브레드부터 Android SDK에 내장되었습니다. 소스코드에 공개될 경우 문제가 되는 정보가 담겨 있는 경우 반드시 proguard를 적용해야 합니다. 설정방법 1. proguard 설정 파일 지정 project.properties파일에 proguard.config=[프로가드설정파일] 형태로 명시합니다. 예) proguard.config=proguard-android.txt 2. proguard 설정 파일 생성 Android SDK 홈 디렉토리 밑에 /tools/proguard 디렉토리가 존재합니다. 해당 디렉토리에는 proguard-android.txt 파일과 proguard-android-optimize.txt 파일이 있습니다. 이는 최적..
Intent intent = new Intent(Intent.ACTION_MAIN); intent.setComponent(new ComponentName("패키지명", "클래스")); startService(intent); //또는 startService(Activity); 일단 갤러리에서 사진 선택하기 Intent intent = new Intent(); intent.setAction(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); startActivityForResult(intent, 1); http://daybrush.com/index.php?mid=community&document_srl=18862 [출처] 데이브러쉬 : http://daybrus..
[스크린 on / off 기능] 스크린 on / off 개발로 인해 시중에 있는 여러 코드를 확인해 보니 하나 같이 제대로 동작하지 않는 코드들이 많았다. 어쩔 수 없이 새롭게 구현을 하였기에 많은 사람들이 스크린 on / off 기능으로 조금이나마 짜증내 하지 않았으면 좋겠다. 1. 알아 두어야 할 PowerManager flag Flag_Value CPU SCREEN KEYBOARD PARTIAL_WAKE_LOCK On* Off Off SCREEN_DIM_WAKE_LOCK On Dim Off SCREEN_BRIGHT_WAKE_LOCK On Bright Off FULL_WAKE_LOCK On Bright Bright 일반적으로 PowerManager 는 위와 같은 flag 를 사용한다. CPU 를 유효..
안드로이드 앱을 만들어 본 프로그래머라면 물론 알고 있겠지만, 앱에서 특정 하드웨어를 사용하려면 AndroidManifest.xml 파일 내에 그 내용을 미리 선언해야 한다. AndroidManifest.xml에 관련된 가이드를 꼼꼼히 읽어본 사람이라면 실제 앱을 배포하면서도 별로 헷갈릴 일이 없겠지만, 케냘의 경우에는 슥 훑어보고 uses-permission 태그만 사용하면 되는 줄 알았다가 낭패를 겪었다. 좌우지간 가이드는 꼼꼼히 읽어볼 일이다. 카메라 기능을 기준으로 예를 하나 들어보도록 하겠다. 케냘은 어제 BITNA를 새로 배포하면서 AndroidManifest.xml 파일에 다음과 같은 내용을 추가하였다: ... ... 카메라의 플래시라이트를 사용하는 기능이 추가되었기 때문에 위와 같은 내용을..
public class SmsRawData implements Parcelable { byte[] data; //Static Methods public static final Parcelable.Creator CREATOR = new Parcelable.Creator (){ public SmsRawData createFromParcel(Parcel source) { int size; size = source.readInt(); byte[] data = new byte[size]; source.readByteArray(data); return new SmsRawData(data); } public SmsRawData[] newArray(int size) { return new SmsRawData[size]..
(원본 : http://developer.android.com/guide/topics/usb/accessory.html) USB 액세서리 모드는 사용자가 USB host 하드웨어에 연결할 수 있도록 안드로이드 장비를 위해 설계되어졌다. 액세서리들은 Android Accessory Development Kit 문서에 설명되어져 있는 Android accessory protocol 을 준수해야 하며 USB host로 동작하지 않는 안드로이드 장비가 USB 하드웨어와 함께 동작하는 것을 지원한다. 안드로이드 장비가 USB 액세서리 모드로 동작할 때 장착된 안드로이드 USB 액세서리는 USB 버스를 통해 전력을 제공하는 호스트로서 동작하고 연결된 장비들을 열거한다. 안드로이드 3.1 (API level 12)는..
AIDL을 사용하는 서비스간 통신에 있어서 데이터의(변수) 전송은 제한적이다. 특히 컴플렉스 타입을 전송하는데에는 Parcelable 인터페이스를 구현하여야 한다. 이때, Parcelable의 역할은 안드로이드 런타임에 객체의 직렬화(serialize) 과정을 도와주는 것이다. 물론 serializable을 사용하여 직렬화하고 전송할 수 있겠지만, 안드로이드에서는 공유메모리를 활용하는, IPC(Inter-Process Communication)통신에서의 효율성을 위하여 사용자가 내부정보에 대한 사항을 직접 명시함으로서, 자바 프로세서가 클래스 내부를 일일히 처리해야하는 오버헤드를 줄여준다. 우선 AIDL에서 사용되는 자료형에 대한 참고사항은 다음과 같다. (from 안드로이드 4 실무 바이블) AIDL은..
안드로이드 서비스는 백그라운드에서 실행하는 컴포넌트로 UI가 없다(윈도우의 서비스와 유닉스 데몬과 비슷). 그리고 서비스 객체는 스레드를 자동으로 만들지 않기 때문에, 별도의 스레드로 동작시키지 않으면 서비스가 메인 스레드에서 동작한다. 서비스가 하는 일이 짧으면 상관없지만 오래 걸리는 경우에는 별도의 스레드(혹은 AsyncTask)를 사용해야 한다. 서비스는 로컬 서비스와 리모트 서비스로 구분되는데, 그중에서 리모트 서비스는 해당 애플리케이션 이외의 범위에서도 서비스를 사용할 수 있으며, 이를 위해서 AIDL(Android Interface Definition Language)를 사용한다. AIDL은 서비스를 사용하는 클라이언트에게 제공되는 인터페이스를 정의하고, 바인더로 사용할 Binder 클래스를 ..
앱을 만들다 보면 인텐트를 통해 단순히 String, int, boolean 같은 기본 타입 뿐 아니고 커스텀 클래스나 오브젝트를 다른 컴포넌트에 전달해 줘야 할 경우가 많다. 그 경우 단순히 그냥 인텐트에 putExtra() 로는 넣어줄 수가 없다. 안드로이드에서는 그런 경우를 위해 자바의 Serialization 개념과 유사한 Parcelable이라는 클래스가 있다. 먼저 이런것이 왜 필요한가 살펴보겠다. 예를 들어 다음과 같은 클래스가 있다고 하자. public class BookData { int _id; String title; String author; String publisher; int price; } 도서관리 앱에서 ListView로 화면에 표시하기 위해 ArrayList에 책들의 정보..