Galaxy Note 的省電小發現

原本大家推薦我用 battery x 2 這個 APK 來幫 Android 手機省電, 不過它的確有一點和 Galaxy Note 有衝突, 特別是看電影的時候, 一開機連線就把螢幕關了. 等到再打開螢幕, 無線網路就算已經 通了也變成需要重新連接.  有時試了好幾次都看不成電影. 最後我只好忍痛把花錢買來的 APK 設為不開啟.

Galaxy  Note 自己也有內建的省電功能, 有開或是沒開的感覺並不是太明顯. 但是有個功能設定算是很有效果, 那就是關掉螢幕自動旋轉. 我是個常把手機帶在身上的人. 雖然偶而也會因為充電而忘了將它放進包包, 但是它跟者我跑來跑去的機會頗高. 即使我不常做倒立的動作, 呃, 其實彎腰的機會都不是很多, 所以身材和手機的螢幕尺寸也成正化 (2.8" → 3.7"→5.3"), 啊! 我最近還買了平板…, 快別提了. 

總之, 自從關掉自動旋轉之後, 手機好像省電多了. 此點請大家參考.

AIT Filter 小檔案

說到 AIT, 大家應該會想到 “美國在台協會" 吧!?不過如果是在 HbbTV 規格書裡面看到這個名詞的話, 它顯然就應該是指 Application Information Table. AIT Filter 就是用來處理 AIT 的過程.

一般的 MPEG2 bit stream 裡面會有 PAT, PMT, NIT, BAT, SDT, EIT, TDT, TOT, 其中又以 PAT 和 PMT 最為知名.  不過 AIT 就相當不常聽說. AIT 的功用就是存放 Broadcasting Application 的 Information, 最早用在 MHP (Media Home Platform). 

舉例來說, 某個 service 有 2 個 applications, 那麼這裡的 AIT 就會有 2 個 entries. 接著會記載 application 的名字, 存放的目錄, 以及執行時的參數. [註 1] 

為了區分 application, 他們有唯一的 ID, 包括 32 bits 的公司 ID 和 16 bits 的 Application 的 ID. 這個值可以被 AIT 的 parser 讀出來, 也就是在下圖 loop 中 application identifier() 這行, 會讀出此 data structure. 

雖然在 DSM-CC 裡面同樣會記錄 application 的位置, 名稱等資訊. 但是一個 application 很可能給很多個 service 使用. 所以兩邊都需要記錄這些訊息

比較賊的地方是這裡面還有個專利 US7861280 [註 2]. 這個專利說, 由於大家 (DVB-MHP, OCAP, ATSC-ACAP) 都可以用 MPEG-TS 和 AIT, 所以我們不知道收到 application 需要的環境究竟是 Java virtual machine, HTML, CE-HTML (HbbTV 1.0), 還是 XDML? 這些只會通知 box (receiving terminal),  再由 box 上的軟體來判斷它能不能支援.

…the application type simply notifies (or indicates) the receiving terminal whether the application is a Java Xlet application requiring a Java Virtual Machine or a Digital Video Broadcasting-HyperText Markup Language (DVB-HTML)-based or an extensible DTV Markup Language (XDML)-based application requiring a browser.

這個專利特別強調, 在 AIT 裡面的第一個 data field 放一個 tag, 很快就能看出這個 application 和這個 program 有沒有關係? 如果沒有關係, 我們就不用去理會這些的 application 了.

An object of the present invention is to provide a data structure for an application information table (AIT) which is able to indicate whether a data broadcast application is bound to a broadcast program or independent of any broadcast program.

如果我們從 AIT 裡面可以很快讀到這個 application 是給哪一個 program 用, 或是可以跨 program 使用, 這就侵犯了這個專利.

[reference]

1. OCAP Application Signalling

2. Data structure for application information table, methods of transmitting and receiving broadcast signal, and digital television receiver

 

ICE 和 Trace 的差異

一般 SOC IC 剛回來的時候, 如果 memory 有問題我們可以用 ECC, 如果 CPU 有問題, 我們可以用 JTAG 去 debug, 以免它一動也不動, 卻不知道原因. 

早期我們用的 ICE (In-Circuit Emulator) 長得非常巨大, 它有一個 socket 攔在單晶片 IC 和 PCB 板子中間, 光是 8051 的 ICE 就可以做成一大台, 彷彿是一台邏輯分析儀的規模. 剛剛 Google 了一下, 已經找不到那種圖片了. 基本上它可以單步執行, 設斷點, 攔截特定位址的讀寫等等.

後來的 ICE 又叫做 Probe, 只需要用 JTAG 介面和 SOC chip 溝通. 那些設斷點的工作跑到 PC 上用 debug 軟體做了. 有時候 probe 也支援幾組硬體位址或資料的比對, 以便快速撈到某個值的變化, 以便找出兇手是誰. 大部分的人用 probe  debug 就夠了.

至於 trace 的功能就是把執行的過程記錄起來, 它可以被保存在一塊特定的 memory 中,  或是直接傳回 PC 再用 tool 分析. 畢竟使用 Probe 的話, 只要有人工介入, 某些 timing 就改變了. 很容易造成平常一定當, 但用 probe 看就不會當的慘劇. 

Trace 容許 IC 用正常的執行環境跑, 不會因為 debug 而造成當機條件改變.  所以它是更強的 debug 工具. 好東西當然不便宜, 由網路上看到買一台 ICE (Probe) 加一台 trace 只要 USD 7,000, 不過買軟體卻要 USD 12,000. 畢竟沒有軟體的話, 錄下一堆 raw data 也是毫無幫助的. 請參考有錢公司的開箱文和官網.

ARM RealView ICE, RealView Trace 開箱文

RealView ICE 和 RealView Trace

[2012/6/27 補充]

1. ARM 的 debug 軟體, 以前是 RVSD 系列, 到了 RVSD 4.x 的下一代, 就改為 DS-5 系列. 最大的差異在於支援了 Linux 和 Android, 因此也可以用 ssh, telnet 等工具去偷看系統.

2. DS 是 DStream 的縮寫, 相對於 VStream. V 就是 Virtual, 實際上還沒有任何硬體的階段, 這個盒子就模擬了整個 ARM 的單晶片系統.

3. RealView 系列的 debug 硬體, 隨之進化到 DS-5 Debugger. 號稱對於 Linux SMP 可以有 seamless 的支援. 只是 RVSD 系列原來也號稱支援 Coretex A9 1~4 core, 其中的差異要比較過才知道.


Child Lock vs Parental Control

這幾天 review 規格的時候, 重新看到 child lock 和 parental control 這兩個名詞. 究竟這兩個字有多大的不同呢?

其實 child lock 可以算是 parental control 的一部分. Parental control 泛指家長在機器上的所有權限, Child lock 特別是指防止小孩子啟動特定的軟體, 例如股票買賣, 網路銀行, 付費的 VOD (video on demand)…等等. 只要把這些軟體統統登錄起來, 在使用前必須輸入密碼, 小朋友就不會莫名其妙地把家敗掉.

這樣的軟體 (APK) 在 Android 的系統中是現成的, 所以可以省去許多開發的時間. 下面這個例子只讓沒有密碼的 “小孩" 玩鬧鐘和計算機, 瀏覽器就被關掉了.

至於經過分級的影片或是遊戲, 這是通常大家認知的 Parental Control, 它也是靠密碼保護. 這些分級的內容通常在影片網站上已經預先分類完畢, 像是 Youtube, 網樂通都是如此. 下圖的分級資訊如紅色箭頭所示.

最後一種叫做 TV Guardian, 它能夠自動發揮 “新聞局" 的效果, 把一般會電視電影中會被消音的部分自動過濾掉. 它的原理是監測字幕, 和一個資料庫比對. 如果比對出 “不和諧" 的句子, 就讓整句沒聲音, 並且把那些特定的字眼用另外的說法代替.

這些侵犯人的字眼主要分為與宗教或是性兩大類, 以及 HxxL, DxxN,…等粗話. 使用時可以切換過濾的強度, 算是滿貼心的. 相關原文如下:

The TVGuardian automatically detects and filters profanity and other offensive phrases while you watch movies or television shows.

How It Works: The TVGuardian monitors the hidden closed-captioning signal and compares those words to it’s database of offensive words and phrases. When an offensive word is detected it mutes the sound for the sentence and displays a replacement text on the screen.

Galaxy Note 也升級 Android 4.0 了

某天早上打開 Kies 的視窗時, 赫然發現 Note 已經有新的韌體可以升級了. 點進去一看, 果然是Android 4.0. 我一時手癢, 就叫 Kies 幫我安裝. 結果這個安裝時間大概有 50 分鐘左右, 又不能拔線, 害我上班差點遲到.

新的手機長相和原來差不多, 倒是把我原來排好的 widget 全部改為預設值, 等於我先前白忙了一場. 完整的升級 “開箱文" 請參考這一篇: 三星Galaxy Note終於可以升上Android 4.0版了,趕快來升級吧!

升了 4.0 之後, 當然我最關心的是多了什麼好東西?最大的發現有兩個:

首先就是 “臉解鎖" 不太好用. 在燈光充足的狀況下, 辨識率還算 OK, 畢竟我一天之內也不會變太多. 不過到了光線暗的地方就不行了, 一句 “找不到臉孔" 或是 “抱歉!不認識你.",  就得 key in PIN 或是畫綠色矩陣上的圖形解鎖.

為了增加辨識率, Android 的設定 → 安全性裡面有一個改善臉辨識的選項, 每重新訓練一次, 就要再輸入一次 PIN, 其實真是有點煩. 難道就不能來個 “訓練 10 連拍", 讓我有機會把表情做足, 或每付眼鏡都換一次嗎?這裡還有很多改進空間, 目前只能算是噱頭.

第二個重點就是: 設定 / 儲存空間 / 裝置記憶體 / 總空間變成 1.97GB 了. 我記得它的規格就是 1GB, 以前看也是 1GB, 升級後竟然變成 2GB 了. 而這 2GB 已經用掉了 1.5GB, 也就是我還是只剩下 516 MB 可以用. 所以我猜這是 bug 吧!