'Android' 카테고리의 다른 글
Android GestureDetector (0) | 2012.06.12 |
---|---|
Monkey Test 옵션 정리 (0) | 2012.02.20 |
인사이드 안드로이드 Chapter4 (0) | 2012.02.02 |
인사이드 안드로이드 Chapter3 (1) (0) | 2011.12.08 |
인사이드 안드로이드 Chapter3 (0) | 2011.12.08 |
Android GestureDetector (0) | 2012.06.12 |
---|---|
Monkey Test 옵션 정리 (0) | 2012.02.20 |
인사이드 안드로이드 Chapter4 (0) | 2012.02.02 |
인사이드 안드로이드 Chapter3 (1) (0) | 2011.12.08 |
인사이드 안드로이드 Chapter3 (0) | 2011.12.08 |
JNI (Java Native Interface)
- Java와 C/C++간의 인터페이스를 가능하게 해주는 매개체
- Java class에서 C언어로 작성된 라이브러리에 포함된 함수를 사용하고 싶다거나, 반대로 C에서 자바 클래스 라이브러리를 사용하고 싶은 경우
(1) 빠른 처리 속도를 요구하는 루틴 작성
(2) 하드웨어 제어
(3) 기존 C/C++ 프로그램의 재사용
JNI 개발 순서
(1) Java 코드 작성
- method 선언은 Java에서, 선언된 method의 실제 구현은 C/C++에서 이루어 진다.
- native keyword로 native method 선언
- System.loadLibrary()에서 C 라이브러리를 로딩
(윈도우: hellojni.dll / 리눅스: libhellojni.so)
(2) Java 코드 컴파일
(3) C header 파일 생성
(4) C 코드 작성
(5) C shared library 생성
(6) Java 프로그램 실행
Camera
frameworks/base/core/jni/android/graphics/Camera.cpp
frameworks/base/graphics/java/android/graphics/Camera.java
AlarmManagerServie
frameworks/base/services/jni/com_android_server_AlarmManagerService.cpp
frameworks/base/services/java/com/android/server/AlarmManagerService.java
참고: http://blog.naver.com/PostView.nhn?blogId=iflowerpot&logNo=80119729013
http://www.kandroid.org/board/board.php?board=androidsource&command=body&no=20
http://blog.naver.com/PostView.nhn?blogId=oh4zzang&logNo=40111762322
Monkey Test 옵션 정리 (0) | 2012.02.20 |
---|---|
인사이드 안드로이드 Chapter5 (0) | 2012.02.02 |
인사이드 안드로이드 Chapter3 (1) (0) | 2011.12.08 |
인사이드 안드로이드 Chapter3 (0) | 2011.12.08 |
인사이드 안드로이드 Chapter1-2 (0) | 2011.12.08 |
p.46 init.rc 분석 및 실행
--> int main(int argc, char
**argv)
(1) init.rc 파일 파싱: 안드로이드가 동작하는데 공통적으로 필요한 환경 설정
(2) init.{hardware}.rc 파일 파싱: 플랫폼 특화된 환경 설정
(3) early-init 액션 리스트 실행:
(4) init 액션 리스트 실행
p.47 액션리스트
on early-init
start ueventd
on init
sysclktz 0
loglevel 3
# setup the global environment
export PATH /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin
export LD_LIBRARY_PATH /vendor/lib:/system/lib
export ANDROID_BOOTLOGO 1
export ANDROID_ROOT /system
export ANDROID_ASSETS /system/app
...
on boot
# basic network init
ifup lo
hostname localhost
domainname localdomain
# set RLIMIT_NICE to allow priorities from 19 to -20
setrlimit 13 40 40
# Define the oom_adj values for the classes of processes that can be
# killed by the kernel. These are used in ActivityManagerService.
setprop ro.FOREGROUND_APP_ADJ 0
setprop ro.VISIBLE_APP_ADJ 1
setprop ro.PERCEPTIBLE_APP_ADJ 2
setprop ro.HEAVY_WEIGHT_APP_ADJ 3
setprop ro.SECONDARY_SERVER_ADJ 4
...
# adbd on at boot in emulator
on property:ro.kernel.qemu=1
start adbd
on property:persist.service.adb.enable=1
start adbd
on property:persist.service.adb.enable=0
stop adbd
service servicemanager /system/bin/servicemanager
user system
critical
onrestart restart zygote
onrestart restart media
service vold /system/bin/vold
socket vold stream 0660 root mount
ioprio be 2
...
p.55 액션 리스트 및 서비스 리스트의 실행
인사이드 안드로이드 Chapter5 (0) | 2012.02.02 |
---|---|
인사이드 안드로이드 Chapter4 (0) | 2012.02.02 |
인사이드 안드로이드 Chapter3 (0) | 2011.12.08 |
인사이드 안드로이드 Chapter1-2 (0) | 2011.12.08 |
Linaro (0) | 2011.11.28 |
Chapter 03 |
init 프로세스 |
$ head Makefile
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 39
EXTRAVERSION = .4
p.33 init 프로세스의 실행과정
--> asmlinkage void __init start_kernel(void)
--> static noinline void __init_refok rest_init(void)
--> static int __init kernel_init(void *
unused)
(init=/init 과 같이 최상위 디렉토리에서 init을 찾고)
--> static noinline int init_post(void)
(최상위 디렉토리에 없는 경우 /sbin, /etc, /bin을 차례로 찾는다.)
--> int main(int argc, char
**argv)
(부팅에 필요한 디렉토리들 생성 + 마운트)
p.36 init 프로세스의 주요 역할
인사이드 안드로이드 Chapter4 (0) | 2012.02.02 |
---|---|
인사이드 안드로이드 Chapter3 (1) (0) | 2011.12.08 |
인사이드 안드로이드 Chapter1-2 (0) | 2011.12.08 |
Linaro (0) | 2011.11.28 |
Porting Android to x86 (0) | 2011.11.23 |
Chapter 01 |
안드로이드 프레임워크 개요 |
Chapter 02 |
안드로이드 개발 환경 구축 |
p.14 이클립스 개발 환경 구축
p.20 HelloWorld application 작성
인사이드 안드로이드 Chapter3 (1) (0) | 2011.12.08 |
---|---|
인사이드 안드로이드 Chapter3 (0) | 2011.12.08 |
Linaro (0) | 2011.11.28 |
Porting Android to x86 (0) | 2011.11.23 |
인사이드 안드로이드 (0) | 2011.11.23 |