Android MTK開發(fā)時區(qū)修改_第1頁
Android MTK開發(fā)時區(qū)修改_第2頁
Android MTK開發(fā)時區(qū)修改_第3頁
Android MTK開發(fā)時區(qū)修改_第4頁
Android MTK開發(fā)時區(qū)修改_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

[FAQ06455]【Zone】如何添加一個新的時區(qū)問題描述:有些項目需要出貨到海外,比如非洲的一些國家,目前的版本中這些國家沒有單獨的時區(qū),而是使用的如非洲東部時間,非洲標準時間等,為了提高當?shù)赜脩趔w驗,需要在setting菜單中增加一個時區(qū),比如為出貨到尼日尼亞的手機增加時區(qū)尼日尼亞拉各斯。解決方案:以加入Nigeria時區(qū)為例,應(yīng)該如下修改:找到該國家在zoneinfo中的時區(qū)信息。時區(qū)信息的文件可以從ftp://munnari.oz.au/pub/下載到最新的,解壓tzdata201x*.tar.gz后,在每個地區(qū)的txt文件中有城市的時區(qū)信息,搜索是否有您要添加的城市,則該時區(qū)可以添加;如果沒有搜索到相關(guān)的國家或城市,則需要考慮使用別的城市的時區(qū)。比如在africa.txt中搜索Nigeria,可以找到下面的內(nèi)容:NigeriaZoneNAMEGMTOFFRULESFORMAT[UNTIL]ZoneAfrica/Lagos0:13:36-LMT1919Sep1:00-WAT這樣可以看到,尼日利亞只有一個城市可以作為時區(qū)ID,這個ID就是Africa/Lagos。修改packages/apps/Settings/res/xml-xx-xx/timezones.xml(xx-xx表示不同的語言和區(qū)域),添加下面的內(nèi)容:<!--timezones.xml用于在setting中增加一個時區(qū)設(shè)置項--><timezoneid=〃Africa/Lagos〃>Lagos</timezone>修改framework/base/core/res/res/xml/time_zones_by_country.xml,添力口下面的內(nèi)容<!--time_zones_by_country.xml這個用于自動匹配時區(qū)時使用,通過countrycode找一個時區(qū)--><!--Nigeria,1:00--><timezonecode=〃ng〃>Africa/Lagos</timezone><!--這里的code=〃ri〃表示國家代碼,比如中國對應(yīng)cn,美國對應(yīng)us,不清楚可以維基百科查詢ISO_3166-1-->這是添加一個時區(qū)的步驟,如果要添加多個時區(qū),請重復或批量執(zhí)行以上步驟。[FAQ08718]如何在icu中自定義某個時區(qū)的顯示名稱[Description】:目前對于有些地區(qū),很多國家會使用一個時區(qū),顯示的名稱也是一樣,比如對于歐洲,很多城市使用“歐洲中部時間”“中歐夏令時”,非洲國家也是類似的。對于有些客戶,可能有定制顯示需求,對于某些時區(qū),不顯示“xx中部時間”,而是顯示“xx時間”,比如下面會以荷蘭阿姆斯特丹為例,目前在手機Setting中選擇“Amsterdam,Berlin”后在Date&Time界面會顯示“CentralEuropeanSummerTime”,下面是修改荷蘭語下這個顯示為自定義名稱的過程。[Solution】:時區(qū)Europe/Amsterdam目前顯示出來的時間是“歐洲中部時間”或“歐洲中部時間”,如果要修改荷蘭語下顯示為“阿姆斯特丹時間”或其他自定義的顯示,請follow下面的修改:找到時區(qū)ID時區(qū)id并不是城市名稱,手機顯示到時區(qū)列表上的時區(qū)名稱與時區(qū)id有映射關(guān)系,可以通過查看Settings中的timezones.xml來確定,package/apps/Settings/res/xml-zh/timezones.xml是中文。這樣可以找到0Amsterdam,Berlin的時區(qū)id是Europe/Amsterdam修改metaZones.txt文件1)修改mapTimezones修改的目的是把時區(qū)添加到自己定義的顯示規(guī)則中,這樣通過時區(qū)IDEurope/Amsterdam就可以得到該顯示規(guī)則Europe_Amsterdam。這個步驟分2步:定義自己的顯示規(guī)則名稱比如我定義了新的規(guī)則Europe_Amsterdam,需要在mapTimezones中添加進去,mapTimezones中順序是按字母排序的,所以Europe_Amsterdam這個規(guī)則要添加到Europe_Central的前面,如下:Europe_Amsterdam(}將要修改的時區(qū)從原規(guī)則中刪除,添加到自定義的規(guī)則中找到要修改的時區(qū),比如Europe/Amsterdam在Europe_Central中,剪切NL{"Europe/Amsterdam”},粘貼到自定義的時區(qū)顯示規(guī)則中,如下所示:Europe_Amsterdam(NL{〃Europe/Amsterdam〃}

2)修改metaZoneinfo添加meta信息,這樣就可以通過顯示規(guī)則名稱Europe_Amsterdam得到meta信息Europe:Amsterdam?!‥urope:Amsterdam〃{(〃Europe_Amsterdam〃}}修改zone/nl.txt文件不同的txt文件代表的是不同語言,語言和區(qū)域代碼可通過查詢ISO-3166-1和ISO-639標準確定。定義在界面顯示的字串,這樣根據(jù)之前得到的meta信息可以得到要顯示的字串。同樣的,名稱是按照字母排序的,所以在Europe_Central前面添加,如下:"meta:Europe_Amsterdam"(ld{"夏令時間顯示名稱"}ls{"標準時間顯示名稱"}}編譯ICU資源請參考FAQ04011進行編譯和測試[FAQ04011]如何編譯ICU資源如果只是測試修改后效果,執(zhí)行步驟A即可;如果需要build后生效,則需要執(zhí)行全部步驟在臨時目錄中編譯ICU資源在external/icu4c下新建臨時目錄icubuild,進入icubuild目錄$mkdirexternal/icu4c/icuBuild$cdexternal/icu4c/icuBuild執(zhí)行icuConfigureRunLinux命令,生成make文件$.././runConfigureICULinux執(zhí)行make-j2命令$make-j2將生成的external/icu4c/icuBuild/data/out/tmp/icudt48l.datpush到手機測試$adbremount$adbpushexternal/icu4c/icuBuild/out/data/tmp/icudt48l.datsystem/usr/icu/$adbreboot(千萬記得重啟手機才看得到修改后的效果)注:JB及以上是icudt48l.datCOPY所需文件將第一步生成的external\icu4c\icubuild\data\out\tmp\icudt48l.dat復制到external\icu4c\stubdata下并改名為icudt48l-all.dat,覆蓋原來的同名文件注:JB及以上是icudt48l.dat和icudt48l-all.dat配置環(huán)境變量重新配置環(huán)境變量(如果不配置正確會導致執(zhí)行腳本出錯)。以我的系統(tǒng)為例,配置過程如下:在終端中進入/work/pro/c70_u10_y320/mt6572_jb3目錄即:$cd/work/pro/c70_u10_y320/mt6572_jb3然后執(zhí)行腳本(等價于./build/envsetup.sh):$sourcebuild/envsetup.sh配置環(huán)境變量(注意“二”前后不要有空格)。$exportANDROID_BUILD_TOP=/home/ckt/work/pro/c70_u10_y320/mt6572_jb3執(zhí)行完沒有任何提示說明配置成功。執(zhí)行完沒有任何提示說明配置成功,有提示說明配置出錯。需要重新配置

執(zhí)行腳本,重新生成.dat文件執(zhí)行腳本,如果遇到文檔印尼語錯誤請用附件(或MTK)提供的腳本(icu_dat_generator.rar)替換后再執(zhí)行,如下所示:進入/work/pro/c70_u10_y320/mt6572_jb3/external/icu4c/studdata目錄$cdexternal/icu4c/stubdata執(zhí)行腳本$./icu_dat_generator.py如果該腳本執(zhí)行成功,external\icu4c\stubdata\icudt48l-default.dat會更新,如果看到文件的修改時間變成了最新的時間,就說明已經(jīng)重新生成,真正最后起作用的是icudt48l-default.dat這個文件。注:JB及以上是icudt48l-default.dat重新編譯工程修改后重新編譯工程來測試效果,使用./mkckt72_we_jb3new命令上傳.dat文件到SVN如果你使用svn或類似軟件進代碼管理,那么就要將你修改的結(jié)果上傳到服務(wù)器上,使服務(wù)器new或build之后可以看到修改效果。需要上傳那些文件呢?請將studdata目錄下的icudt48l-default.dat文件上傳。說明:實際上腳本的作用就是將icudt48l-all.dat解壓后,根據(jù)txt文件內(nèi)容重新生成icudt48l-default.dat文件,在build的時候Android.mk文件會直接將icudt48l-default.dat文件改名后復制到最終out目錄中,所以上傳到服務(wù)器只需要將生成的這些.dat文件傳上去,其它在本機修改的都不用(如果傳上去可能會build出錯)。根據(jù)上面的FAQ文檔做了兩個實驗實驗一。在ICU中添加某個時區(qū)并顯示自定義名稱,同時開機向?qū)е幸诧@示此修改的自定義名稱【問題描述】添加時區(qū)Abidjan步驟:在frameworks/base/core/res/res/xml/time_zones_by_country.xml中搜索是否存在有關(guān)Abidjan的時區(qū)ID。<!--COTED'IVOIRE,0:00--><timezonecode="ci">Africa/Abidjan</timezone>//時區(qū)ID在packages/apps/Settings/res/xml/timezones.xml中搜索時區(qū)ID是否存在時區(qū)設(shè)置項(Settings->Date&time->Selecttimezone對應(yīng)的名稱。如果沒有可以按照timezones.xml其它時區(qū)編寫規(guī)則添加:<timezoneid="Africa/Abidjan">Abidjan</timezone>在external/icu4c/data/misc/metaZones.txt中搜索是否有匹配時區(qū)idAfrica/Abidjan的mapTimezones。搜索結(jié)果:GMT{001("Atlantic/Reykjavik"}BF{"Africa/Ouagadougou"}CI{"Africa/Abidjan"}〃在這里GB{"Europe/London"}GH{"Africa/Accra"}GM{"Africa/Banjul"}GN{"Africa/Conakry"}IE{"Europe/Dublin"}LR{"Africa/Monrovia"}ML{"Africa/Bamako"}MR{"Africa/Nouakchott"}SH{"Atlantic/St_Helena"}SL{"Africa/Freetown"}SN{"Africa/Dakar"}ST{"Africa/Sao_Tome"}TG{"Africa/Lome"}}由結(jié)果可知該時區(qū)ID會顯示格林治標準時區(qū),如何修改為自定義的時區(qū)呢?刪除CI{"Africa/Abidjan"}這項mapTimezones中自定義時區(qū)規(guī)則,由于mapTimezones中順序是按字母排序的,所以將Africa_Abidjan這個規(guī)則添加在Afghanistan{001{〃Asia/Kabul〃}}規(guī)則之后。Africa_Abidjan(001{〃Africa/Abidjan〃}metazoneInfo添加meta信息(按字母排序)"Africa:Abidjan"{{"Africa_Abidjan",}}在external/icu4c/data/zone/en.txt中添加顯示字符串(按字母排序)"meta:Africa_Abidjan"(ls("AbidjanTime"}//自定義字符串}到此修改就結(jié)束了,修改完后可以按照[FAQ04011]如何編譯ICU資源編譯驗證,如果要設(shè)置開機向?qū)э@示自定義時區(qū),即設(shè)置默認時區(qū)需要在mediatek/config/ckt72_we_jb3/ProjectConfig_ckt.mk中設(shè)置TIMEZONE=Africa/Abidjan驗證圖片:1.開機向?qū)э@示添加時區(qū)Date&timeAbidjanTimeJCurrentdate01/01/2014Currenttime12:02AM4?2.自定義字符串國A**8 4■12:04amDate&timeAutomaticdate&timeUsenetwork-providedtimeAutomatictimezone/Usenetwork-providedtimezone01/01/2014Settime12:04AMGMT+00:00,AbidjanTimeUse24-hourformat1:00PMChoosedateformat31/12/20143添加時區(qū)選項國A**A 4■12:04amSelecttimezoneAbidjanGMT+0:00Amsterdam,BerlinGMT+l:00BelgradeGMT+l:00BrusselsGMT+l:00SarajevoGMT+l:00W.AfricaTimeGMT+l:00WindhoekGMT+2:00

實驗二。添加一個新時區(qū)【問題描述】添加新時區(qū)烏魯木齊Urumqi+8:00先上圖國A學W9A■12:05am國A學W8A■8:05amSelecttime

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論