안드로이드의  현재 설정  언어/국가/timezone 등은 

/data/property 디렉토리에  

persist.sys.timezone
persist.sys.language
persist.sys.country

이런 파일명으로  저장되어 있습니다. 

설정에서  언어들 바꾸고,  위 위치에 가서  cat 등으로 보시면 저장된 값이 바뀌어 있는 것을 보실 수 있습니다. 


즉,  부팅시에  이 파일이 있으면  해당 언어로  안드로이드 OS가 구동이 된다는 것입니다. 



그럼,  위 파일을  저장해 주는  방법이  OS 빌드 중에 어딘가에 있겠지요. 

이것은  init.rc 파일에 적어주면 되더군요. 

OS의 소스 디렉토리 중에서  

vender/업체/프로젝트/  로 된 디렉토리에 가시면,  init.rc 파일이 있는데요. 

01.# killed by the kernel.  These are used in ActivityManagerService.
02.setprop ro.FOREGROUND_APP_ADJ 0
03.setprop ro.VISIBLE_APP_ADJ 1
04.setprop ro.SECONDARY_SERVER_ADJ 2
05.setprop ro.BACKUP_APP_ADJ 2
06.setprop ro.HOME_APP_ADJ 4
07.setprop ro.HIDDEN_APP_MIN_ADJ 7
08.setprop ro.CONTENT_PROVIDER_ADJ 14
09.setprop ro.EMPTY_APP_ADJ 15
10. 
11.# for  default langudage
12.setprop persist.sys.language ko
13.setprop persist.sys.country KR
14.setprop persist.sys.timezone Asia/Seoul


위의  아래쪽 3줄 처럼 넣어 줍니다. 

setprop 의  위치가 중요하지는 않을 수도 있는데요. 
전 저 위치에 넣었습니다. 

이렇게 해서 OS를 빌드하면, 

최초 실행시에도 한글로  나온답니다. 

출처 : http://www.androidpub.com/203240 

build\target\product\sdk.mk or core.mk 등에서 사용되기도 함.
 

설정의 언어 목록을 수정하는 방법은 바이너리 빌드시에 Product.mk 파일을 수정해 주면 된다.

기본적으로 Product.mk 파일은 device/[company]/[Project]/Product.mk 또는 [Project Name].mk로 존재 합니다. 

PRODUCT_LOCALES := en_US ko_KR 이렇게 작성하면 목록에는 영어와 한국어 두개만 나타나게 된다.
 
그리고 Locale Default로는 en_US로 사용됩니다.

getDateInstance

public static final DateFormat  getDateInstance(int style,
                                               Locale  aLocale)
지정된 로케일에 대해, 지정된 포맷 스타일을 가지는 일자 포매터를 가져옵니다.

파라미터:
style - 지정하는 포맷 스타일. 다음에 예를 나타냅니다. US 로케일에서의 M/d/yy 에 대한 SHORT
aLocale - 지정된 로케일
반환값:
일자 포매터

boolean isScreenOn ()

void goToSleep (long time)

void reboot (String reason)

void userActivity (long when, boolean noChangeLights)

 

화면의 켜짐을 조사하거나 즉시 화면을 끄거나 재부팅하는 등의 기능을 제공한다. 화면을 강제로 끄는 goToSleep 메서드는 전원 버튼을 누르지 않아도 프로그램이 소프트웨어적으로 슬립 모드로 들어갈 수 있어 실용성이 있다. 그러나 아무나 사용할 수 있는 메서드는 아니므로 엄격한 제한이 따른다. 이 메서드를 사용하려면 DEVICE_POWER 퍼미션이 필요하며 또 시스템 앱으로 서명을 해야 한다.

+ Recent posts