본문 바로가기
728x90

안드로이드152

안드로이드 텔레포니 프레임워크 (Android Telephony Framework) - 개요 - Telephony Framework 정의안드로이드를 하다보면, Telephony Framework, Telephony Service라는 말을 듣는다.그리고 이 Telephony Framework를 담당하는 개발자들은 보면, 대부분이 Protocol 관련 개발자들이다.대체 Telephony가 뭐길래 Protocol Engineer 들이 업무를 받아서 할까? Telephony란? "Tele (Distant - 멀다)"와 "Phone (Speak - 말하다 혹은 Sound - 소리)"라는 그리스어의 합성어로 Telephone은 멀리 떨어진 사람과 말을 한다는 의미. 즉, 그냥 전화를 이야기 하는 것 입니다.이와 관련 된 Part가 Protocol Part이기 때문에 Protocol Engineer들의 주요.. 2014. 4. 16.
안드로이드 Message 소스 분석 (Android Message.java) Source Path : Message.java (frameworks\base\core\java\android\os) /* * Copyright (C) 2006 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to i.. 2014. 4. 15.
Android Looper.java (안드로이드 루퍼 소스) /* * Copyright (C) 2006 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed.. 2014. 4. 15.
[유틸리티 추천] 안드로이드 디버깅 툴 추천 안드로이드 개발자라면 LogCat을 많이 사용하는데,폰의 전반적인 문제를 Debugging하는 사용자에게는 한계가 있습니다.가장 큰 문제점은 Window상에서 Log를 Filter해주는 기능이 빈약하다는 것입니다.또한 실시간으로 DDMS로그(system, main, radio, event, kernel)를 복합적으로 분석하기 어렵다는 점입니다.이러한 문제점들 때문에, 퀄컴이나 미디어텍은 자체 디버깅 툴을 개발해서 사용하고 있습니다. 그럼 일반 개발자는 어떻게 해야 할까요?이러한 단점들을 극복하기 위해 사용하는 공용 툴을 소개하고자 합니다. 1. mLogcat QCT Feature Phone을 개발하신 분이라면 QXDM Log Viewer를,MTK Feature Phone을 개발하신 분이라면 Catcher.. 2014. 4. 8.
Android/Java synchronized에 대해서 안드로이드/자바 애플리케이션이 수행되면 서버나 WAS에 프로세스가 생성되고, 하나의 프로세스에는 하나 이상의 Thread(스레드)가 생성되게 된다. 생성 된 스레드가 단일 스레드일 수 있고, 여러개의 스레드일 수도 있다. synchronized는 매우 유용하나, 내용을 정확히 알고 써야 하는 중요한 놈이기에 적확히 이해하고 사용하자. 스레드는 같은 프로세스내에서 동일한 데이터를 공유한다. 따라서 하나의 데이터에 대해서 동시에 여러개의 스레드가 접근이 가능하며, 그에 따라 데이터의 일관성에 관한 문제가 생길 수가 있다. 이를 해결하기 위해 툭!! 하고 튀어나온 놈이 바로 synchronized 이다. synchronized란? 하나의 자원(데이터)에 대해서 여러 스레드가 사용하려고 할때 한 시점에서 하나의.. 2014. 4. 8.
Android/JAVA - android.Manifest.permission android.Manifest.permissionACCESS_CHECKIN_PROPERTIESAllows read/write access to the "properties" table in the checkin database, to change values that get uploaded.ACCESS_COARSE_LOCATIONAllows an application to access coarse (e.g., Cell-ID, WiFi) locationACCESS_FINE_LOCATIONAllows an application to access fine (e.g., GPS) locationACCESS_LOCATION_EXTRA_COMMANDSAllows an application to access extra.. 2014. 4. 7.
Android/JAVA - 안드로이드 바인더(Android Binder)가 탄생하기 까지 예전에 비(Be) 라는 이름의 회사가 만든 비박스(BeBox) 라는 컴퓨터가 있었다. 이 컴퓨터는 BeOS 라는 자신만의 OS를 장착하고 있었고, 꽤 참신한 아이디어들로 무장하고 있었지만, 결국 시장의 반응을 끌어내지는 못한 채, 다른 회사에 흡수되고 말았다. Be를 인수한 팜(Palm)은 팜 파일럿(Palm Pilot) 이라는 PDA로 한 시절을 풍미한 회사다. 팜 역시 나름의 복잡한 역사를 갖고 있지만 여기서는 필요한 만큼만 언급하고 넘어가기로 하자. 팜(Palm), 팜원(PalmOne), 팜소스(PalmSource)를 구별하지 않고 팜이라고 부르겠다. 여기까지가 2001년의 일이다. 어쨌거나 꽤 오래 전임에도 불구하고 시스템 API를 모두 C++로 제공하는 도전적이고 스타일 있는 시스템으로 기억되고.. 2014. 4. 7.
Android/JAVA - Binder Source Analysis (바인더 소스 분석) Binder를 사용하는데 반드시 Binder의 동작에 대해 이해해야 하는 것은 아니다.그러나 Binder에 대해 이해를 하고 있다면, 사용하는 것이나 디버깅을 하는 것에서 많은 도움이 될거라고 생각한다.모든 소스 코드를 분석하지는 않겠지만, 대표적인 소스를 예로 어떤 역할을 하는지 살펴 보겠다.기타 소스 부분은 필요할 때마다 뒤져보면 그만이니까~^^ Binder는 service_manager와 함께 시작된다. service_manager의 main함수를 살펴보자. binder_open()함수를 통해서 "/dev/binder"를 open하고 binder_loop()함수를 실행하는데, [ bs->fd = open("/dev/binder", O_RDWR); ]이 때 인자로 binder_state 포인터 변수와.. 2014. 4. 7.
Android/JAVA - End Call (내 어플에서 통화 종료 하기) 간혹 내가 만든 어플에서 통화 종료를 제어하고 싶은 경우가 있습니다.이럴때는 ITelephony를 추가 후 Telephony Service를 사용하는 방법이 있습니다.Telephony Framework의 API를 바로 호출해서 사용하는 방식입니다. import com.android.internal.telephony.ITelephony; try{ tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); Class c = Class.forName(tm.getClass().getName()); Method m = c.getDeclaredMethod("getITelephony"); m.setAccessible(true); ITelephony tel.. 2014. 4. 7.
Android/JAVA - ITelephony 추가하는 방법 1. Make Package 2. Name : com.android.internal.telephony 3. ITelephony.aidl 생성 4. ITelephony.aidl 내용 삽입 인터넷에 돌아다니는 ITelephony.aidl 내용을 복사하여 붙여 넣거나, 필요한 부분만 추가. package com.android.internal.telephony; import android.os.Bundle; import java.util.List; interface ITelephony { /** * Dial a number. This doesn't place the call. It displays * the Dialer screen. * @param number the number to be dialed. If.. 2014. 4. 7.
안드로이드 SKT - G2 만우절 패치 (G2 4월 1일 업데이트) LG 안드로이드의 주력 모델인 G2가 4월 1일에 만우절 패치를 단행했습니다.사실, 만우절 패치를 그냥 이름 붙여본겁니다.왜?? 진짜 업데이트하고 장난 아닌 문제들이 나왔으니까요.....(맨날 업데이트 하고 후회하면서도, 혹시나 개선이 됐을까 하는 마음에 업데이트를 하게 되네요.... 그리고 또 후회를....) 1. 업데이트 후 변경 사항 - T 전화 / T 연락처 추가 요즘 광고를 엄청나게 해대죠? G2에도 적용이 되었네요. 해당 내용이 적용되면서, LG 기본 Call UI와 T 전화 UI 중 선택하는 메뉴가 설정에 추가 되었습니다. 체험 후기는 나중에 따로 포스팅 해보겠습니다. 더 써보고요~~ㅋ - 음..... 그리고 다른 점은 딱히 못 찾겠네요.... - 노크코드 추가 이건 광고에서 계속 나와서 다.. 2014. 4. 7.
Android/JAVA - CountDownTimer new CountDownTimer(5000, 1000L){ // 5초 동안, 1초 마다 public void onTick(long millisUntiFinished){ Log.i(TAG, "Timer : " + (millisUntiFinished/1000L)); // Tick 마다 수행 할 동작 } public void onFinish(){ // Timer 종료 시 수행 할 동작 }}.start(); 2014. 4. 5.
728x90