file: <aosp>/device/nvidia/macallan/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
<bool name="def_bluetooth_on">false</bool>
<bool name="def_wifi_display_on">false</bool>
<bool name="def_install_non_market_apps">true</bool>
<bool name="def_package_verifier_enable">true</bool>
冷門新世界
冷門技術的釐清
2015年4月1日 星期三
[android] how to update placement of home screen in launcher ?
file: <aosp>/packages/apps/Launcher2/res/xml-sw720dp/default_workspace.xml
<favorite
launcher:packageName="com.android.music"
launcher:className="com.android.music.MusicBrowserActivity"
launcher:screen="2"
launcher:x="1"
launcher:y="1" />
<favorite
launcher:packageName="com.android.music"
launcher:className="com.android.music.MusicBrowserActivity"
launcher:screen="2"
launcher:x="1"
launcher:y="1" />
[android] how to change default bookmark preloads in browser settings ?
file: <aosp>/packages/apps/Browser/src/com/android/browser/provider/BrowserProvider2.java
private void addDefaultBookmarks(SQLiteDatabase db, long parentId) {
....
//bookmarks = res.getTextArray(R.array.bookmarks);
//preloads = res.obtainTypedArray(R.array.bookmark_preloads);
bookmarks = res.getTextArray(R.array.bookmarks_tt_china);
preloads = res.obtainTypedArray(R.array.bookmark_preloads_tt_china);
}
private void addDefaultBookmarks(SQLiteDatabase db, long parentId) {
....
//bookmarks = res.getTextArray(R.array.bookmarks);
//preloads = res.obtainTypedArray(R.array.bookmark_preloads);
bookmarks = res.getTextArray(R.array.bookmarks_tt_china);
preloads = res.obtainTypedArray(R.array.bookmark_preloads_tt_china);
}
[android] how to change default homepage in browser settings ?
file : <aosp>/packages/apps/Browser/res/values/strings.xml
<!-- The default homepage. -->
<string name="homepage_base" translatable="false">
http://www.google.com
</string>
<!-- The default homepage. -->
<string name="homepage_base" translatable="false">
http://www.google.com
</string>
2013年12月3日 星期二
dart 語言心得
Comments:
單行 //
多行 /*...*/
document comments
///
/**
內容中含有 [xxx] , xxx參考到 class/method/field/top-level variable/function/parameter
Two runtime modes:
production - faster, deploy (ignore assert statements and static type checking)
checked - helpful development
Variable default value
Uninitialized variables have an initial value of null.
int linecnt; <<-- linecnt is null by default, not 0
Optional type system
it is optional to declare the type of variables/functions/parameters/fields.
if you declare it, it is useful to type checking on checked runtime mode
Final and Const
final variable is initialized the first time it's used, it can set only once.
(Lazy initialization of final variables helps apps start up faster)
const variables is compile-time constants.
const pi=3.14159;
const round=2*pi;
Build-in Types
numbers: int (任何長度的整數) / double(凡含小數點的數字) / num
strings: String
booleans: bool (true/false)
lists: List<T> / Collection
maps: Map
String (immutable sequences of UTF-16 code units)
quote / double-quote / triple-quote for multi-lines string
raw string ==> r"In a raw string, even \n isn't special."
字串比較用 == (是比較字串內容)
Boolean
In Dart, only the value true is treated as true, all other values are treated as false.
check string if empty ==> str.isEmpty()
check int if NaN ==> iVar.isNaN()
List (zero-based indexing)
In Dart, array is List object.
var list = [1,2,3,4];
Map
用宣告方式產生
var abc = {
'test1' : [123,456,789],
'test2' : [666,777]
};
用 constructor產生
var def = new Map();
var nnn = new Map<int, String>();
Function
if no return value is specified, the statement return null.
Optional parameters (can be either positional or named, but not both)
default values must be compile-time constants such as literals. If no default value, the value is null.
checking caller passing value for an optional parameter: ?param
if (?device) { return true if the caller specified the parameter
//....
}
Named parameters use {param1, param2,...} to declare
enableFlags( {bool bold, bool hidden : false} ) {
// ...
}
In caller side, named parameters using paramName : value
enableFlags(bold: true, hidden: false);
Positional parameters use [] to declare it
String say( String from, String msg, [String device="carrier", String mood] ) {
}
Type Test Operators
as Typecast
is True if the object has the specified type
is! False if the object has the specified type
單行 //
多行 /*...*/
document comments
///
/**
內容中含有 [xxx] , xxx參考到 class/method/field/top-level variable/function/parameter
Two runtime modes:
production - faster, deploy (ignore assert statements and static type checking)
checked - helpful development
Variable default value
Uninitialized variables have an initial value of null.
int linecnt; <<-- linecnt is null by default, not 0
Optional type system
it is optional to declare the type of variables/functions/parameters/fields.
if you declare it, it is useful to type checking on checked runtime mode
Final and Const
final variable is initialized the first time it's used, it can set only once.
(Lazy initialization of final variables helps apps start up faster)
const variables is compile-time constants.
const pi=3.14159;
const round=2*pi;
Build-in Types
numbers: int (任何長度的整數) / double(凡含小數點的數字) / num
strings: String
booleans: bool (true/false)
lists: List<T> / Collection
maps: Map
String (immutable sequences of UTF-16 code units)
quote / double-quote / triple-quote for multi-lines string
raw string ==> r"In a raw string, even \n isn't special."
字串比較用 == (是比較字串內容)
Boolean
In Dart, only the value true is treated as true, all other values are treated as false.
check string if empty ==> str.isEmpty()
check int if NaN ==> iVar.isNaN()
List (zero-based indexing)
In Dart, array is List object.
var list = [1,2,3,4];
Map
用宣告方式產生
var abc = {
'test1' : [123,456,789],
'test2' : [666,777]
};
用 constructor產生
var def = new Map();
var nnn = new Map<int, String>();
Function
if no return value is specified, the statement return null.
Optional parameters (can be either positional or named, but not both)
default values must be compile-time constants such as literals. If no default value, the value is null.
checking caller passing value for an optional parameter: ?param
if (?device) { return true if the caller specified the parameter
//....
}
Named parameters use {param1, param2,...} to declare
enableFlags( {bool bold, bool hidden : false} ) {
// ...
}
In caller side, named parameters using paramName : value
enableFlags(bold: true, hidden: false);
Positional parameters use [] to declare it
String say( String from, String msg, [String device="carrier", String mood] ) {
}
Type Test Operators
as Typecast
is True if the object has the specified type
is! False if the object has the specified type
2013年10月24日 星期四
[android build] build/core/base_rules.mk MODULE.TARGET.xxx ... already defined by ...
在 build android 的過程中出現 ... build/core/base_rules.mk MODULE.TARGET.xxx ... already defined by ... ,那麼應該是 某個 Android.mk 中的 module name 重複了,因此解決的方法是
1. 將 module name 改名,避免同名。
2. 將 Android.mk 的前後加入 ifeq ($(ENV_VAR), XXYY) ... endif ,讓符合某個 環境變數才將 module 加入
1. 將 module name 改名,避免同名。
2. 將 Android.mk 的前後加入 ifeq ($(ENV_VAR), XXYY) ... endif ,讓符合某個 環境變數才將 module 加入
2013年6月10日 星期一
步驟:如何root HTC Aria和 WildfireS手機 ?
目前按照下列步驟已成功將自己的WildfireS和女兒的Aria手機成功地 root 了。
行前必要動作: 備份
在執行下列動作之前,請務必要事先做好備份工作,以免後悔莫及。
另外,htc sync 能夠正常透過 usb cable 連接到你的手機。(最主要是 adb 可以連結)
1. unlock bootloader (再次提醒,在進行此步驟之前請備份)
去網站 www.htcdev.com 申請 unlock bootloader,請依照網站說明步驟進行(非常清楚容易)。 通常進行到最後 燒錄 unlock bootloader bin file 之後,你的手機會被 clean boot,所以才再次提醒你務必要備份你的重要資料(外部 sdcard中的資料是不會被清除的)。
2. 取得 root 升級包 (不是整個 image 包,而是單純的內含 su 而已的 root 包)。
去網站 apk.tw 搜尋取得上述的 "root升級包 for HTC"
http://apk.tw/forum.php?mod=viewthread&tid=58559&fromuid=249407
http://apk.tw/thread-240301-1-1.html 主要是參考這一篇
安裝 "刷機精靈" ,官網是 http://www.shuame.com
使用 "一鍵刷機" 功能,將取得的 root 包燒錄進去。
成功後,你的手機已經成功安裝 root 相關程式,可以透過 EF FileExplorer 去檢查看看。
3. 安裝 Link2SD,來擴充手機裡的 internal space (安裝或升級 APK 所需的空間)
重點是 透過 外部 sdcard 來擴充,首先將 sdcard 分割成兩個 partitions,其中一個必須是 ext2/3/4等 type(通常選擇 ext3, size 約 1~2G)。
另外,需適當地設定 Link2SD 來讓系統使用延伸的 ext3 partition空間。
4. 做完上述的動作,基本上已經完成 root 和 擴充 APK 空間的破解了。
雖然上述的參考都是 Wildfire S,但是同樣的步驟應用於 Aria (A6380)也同樣可行。
行前必要動作: 備份
在執行下列動作之前,請務必要事先做好備份工作,以免後悔莫及。
另外,htc sync 能夠正常透過 usb cable 連接到你的手機。(最主要是 adb 可以連結)
1. unlock bootloader (再次提醒,在進行此步驟之前請備份)
去網站 www.htcdev.com 申請 unlock bootloader,請依照網站說明步驟進行(非常清楚容易)。 通常進行到最後 燒錄 unlock bootloader bin file 之後,你的手機會被 clean boot,所以才再次提醒你務必要備份你的重要資料(外部 sdcard中的資料是不會被清除的)。
2. 取得 root 升級包 (不是整個 image 包,而是單純的內含 su 而已的 root 包)。
去網站 apk.tw 搜尋取得上述的 "root升級包 for HTC"
http://apk.tw/forum.php?mod=viewthread&tid=58559&fromuid=249407
http://apk.tw/thread-240301-1-1.html 主要是參考這一篇
安裝 "刷機精靈" ,官網是 http://www.shuame.com
使用 "一鍵刷機" 功能,將取得的 root 包燒錄進去。
成功後,你的手機已經成功安裝 root 相關程式,可以透過 EF FileExplorer 去檢查看看。
3. 安裝 Link2SD,來擴充手機裡的 internal space (安裝或升級 APK 所需的空間)
重點是 透過 外部 sdcard 來擴充,首先將 sdcard 分割成兩個 partitions,其中一個必須是 ext2/3/4等 type(通常選擇 ext3, size 約 1~2G)。
另外,需適當地設定 Link2SD 來讓系統使用延伸的 ext3 partition空間。
4. 做完上述的動作,基本上已經完成 root 和 擴充 APK 空間的破解了。
雖然上述的參考都是 Wildfire S,但是同樣的步驟應用於 Aria (A6380)也同樣可行。
訂閱:
文章 (Atom)