int is_little_endian()
{
    long val = 1;
    char *c = (char *) &val;
    return (*c == 1);
}

'리눅스 > 스크립트/유틸' 카테고리의 다른 글

dd (주로 빈 파일 만들기, loopback 마운팅 할 때 쓰임)  (0) 2011.08.02
tee 커맨드  (0) 2011.06.19
busybox cross-compile  (0) 2011.06.01
mount 옵션비교 atime, noatime, relatime  (0) 2011.06.01
xargs 사용법  (0) 2011.04.24
Posted by code cat
애플리케이션용 자바 프로그래밍이나 일반 자바 프로그래밍 관련은 다른 방법으로 컴파일 가능하다. 그러나..

안드로이드 프레임워크단이고, ant 아닌 android용 make라면 다음과 같은 방법으로 가능하다.

자바 단에서

public static final boolean TARGET_PRODUCT = flase;


로 정의하고,

 분기컴파일이 필요한 부분에 가서,

if (TARGET_PRODUCT) {

// 코드 내용, 이 부분은 false로 남아있을 경우, 컴파일 할때 사라짐.

}



그리고 해당 make 파일에서 해당 product에 따라 간단히 awk  나 sed로 저기 fasle 부분만 바꿔주는 경우로 하면 된다.  자바도 컴파일할때 최적화를 하기에 저렇게 절대로 실행이 안되는 부분(상기 TARGET_PRODUCT이 적용 안되는 경우) 컴파일 할 때 생략한다.

/* 커맨트 추가
 원래는 안드로이드에서 쓰는 property_get() (system/core/include/cutils/properties.h 에 정의)를 product에 맞는 프로퍼티를 설정해 놓고 거기에 맞게 쓸까 했는데, 이러면 전처리기라기보단 그냥 분기실행 같기도 하고, 프로퍼티를 저런 식으로 써도 되는지 몰라서 안했습니다.

 이 방법에 문제라면 product종류가 2개 이상이면 조금 복잡해지는거 같습니다.  안드로이드가 아닌 그냥 자바라면 디펜던시 인젝션 하는 방법으로 하면 간단히 해결 되는 걸로 알고 있습니다.(이 부분은 해당업무가 바뀌면 올리겠습니다 ㅎㅎ)
*/

'안드로이드 > 프레임워크' 카테고리의 다른 글

Bionic libc (2)  (0) 2012.11.08
Bionic libc  (0) 2012.10.30
안드로이드 init.rc (oom_adj값)  (0) 2012.09.27
Dalvik Virtual Machine 와 odex  (0) 2012.08.13
안드로이드 바인더 ipc  (0) 2011.10.23
Posted by code cat
설정
make menuconfig 실행
컴파일
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
(Makefile 안에 CROSS_COMPILE 수정해도 된다)
인스톨
make CONFIG_PREFIX=target_directory ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- install

 

(static 컴파일)make CONFIG_PREFIX=target_directory ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-  CFLAGS=--static LDFLAGS=--static  install

 


확인
file busybox 로 크로스컴파일 잘 되었나 확인
 busybox: ELF 32-bit LSB executable, ARM ...
 
Posted by code cat
atime, noatime, relatime는 ext2, ext3와 같은 파일 시스템을 위한 마운트 옵션이다.  Debian 계열에선 default로 atime으로 설정되어 있다.

 참고로 안드로이드에서는 system과 data 이미지를 yaffs2로 마운트 할 때 noatime 옵션을 쓴다.


atime
이 옵션을 설정할 경우, 리눅스는 특정 파일이 마지막으로 엑세스되었던 때를 기록한다. sysadmins이나 메일 프로그램같은 프로그램에서 유용하게 쓰일 수 있다.  하지만 항상 엑세스 할때마다 write을 해주어야 하므로(기록을 해야 하므로), 퍼포먼스 이슈가 있다.

noatime
이 옵션을 사용시, atime처럼 파일이 엑세스될때마다 기록하는 것과 달리 파일이 변하거나 쓰기 오퍼레이션시에만 디스크에 기록된다. 비록 시스템 퍼포먼스를 크게 이끌어 올릴 수 있으나, 간혹 특정 프로그램이 제대로 동작하지 않는 경우가 있다.

relatime
이 옵션을 사용한 파일 시스템은 파일에 대한 엑세스 타임이 파일이 변환된 타임보다 오래 됬을경우에만 업데이트 한다. atime과 noatime 의 중간이다.

결론: relatime 을 활용하자.

'리눅스 > 스크립트/유틸' 카테고리의 다른 글

dd (주로 빈 파일 만들기, loopback 마운팅 할 때 쓰임)  (0) 2011.08.02
tee 커맨드  (0) 2011.06.19
엔디안 처리하는 함수  (0) 2011.06.06
busybox cross-compile  (0) 2011.06.01
xargs 사용법  (0) 2011.04.24
Posted by code cat
카테고리 없음2011. 5. 30. 21:37


이러다 정리 언제 다 하지...
Posted by code cat