安卓移動(dòng)app與機(jī)頂盒開發(fā)區(qū)別_第1頁
安卓移動(dòng)app與機(jī)頂盒開發(fā)區(qū)別_第2頁
安卓移動(dòng)app與機(jī)頂盒開發(fā)區(qū)別_第3頁
安卓移動(dòng)app與機(jī)頂盒開發(fā)區(qū)別_第4頁
安卓移動(dòng)app與機(jī)頂盒開發(fā)區(qū)別_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1、首先聲明,下述觀點(diǎn)都限制為一般情況,之所以是一般情況是因?yàn)锳ndroid系統(tǒng)的是源代碼開發(fā)的,開發(fā)商可以自行修改硬件,SDK配置。一般來說機(jī)頂盒盒是沒有內(nèi)置camera的,但是開發(fā)商是可以自行添加的,一般來說機(jī)頂盒是沒有通信模塊的,但是理論上在機(jī)頂盒上添加上去是可以的,一般來說手機(jī)都有重力感應(yīng)的,但是開發(fā)商為了省錢沒有內(nèi)置重力感應(yīng)器也是有的,等等奇葩硬件跟軟件配置。所以,下面的觀點(diǎn)都限制于一般情況?,F(xiàn)在來說說有哪些區(qū)別:1 .分辨率機(jī)頂盒跟手機(jī)的分辨率有著很大的區(qū)別。機(jī)頂盒一般是720P,1080P,2K,4KDPI都=160手機(jī)的分辨率就多了去了,舉個(gè)例子可能同學(xué)聚會(huì)上30個(gè)Android手

2、機(jī)可能存在30種分辨率,手機(jī)的分配率匹配就難做一點(diǎn)2 .操作方式機(jī)頂盒主要是使用紅外遙控器要控制的(支持外接USB鼠標(biāo))手機(jī)主要是通過手機(jī)觸摸來控制的,我認(rèn)為這個(gè)也是應(yīng)用開發(fā)中2者最大的區(qū)別。導(dǎo)致的結(jié)果是控制上一個(gè)主要重寫dispatchKeyEvent(KeyEventevent)onKeyDown(intkeyCode,KeyEventevent)。手機(jī)是dispatchTouchEvent(MotionEventev)onTouchEvent(MotionEventevent),手機(jī)上可以做手勢(shì)等判斷,多個(gè)手指等多種操作方式,但是出各種各樣的效果,這不是機(jī)頂盒可以比擬的。操作方便,也導(dǎo)致

3、手機(jī)上跟機(jī)頂盒上的應(yīng)用的風(fēng)格明顯不一樣。機(jī)頂盒上下左右時(shí)要控制焦點(diǎn)的移動(dòng),還要選中的控件加上一個(gè)背景/光標(biāo)/顏色變化/大少變化等來告訴用戶當(dāng)前被選中的控件。而手機(jī)呢,大多數(shù)情況是不需要關(guān)心焦點(diǎn)在什么地方的,直接點(diǎn)擊就是了。3 .焦點(diǎn)的移動(dòng)其實(shí)在第2點(diǎn)中已提到了,機(jī)頂盒要時(shí)刻注意焦點(diǎn)的位置4 .輸入方式由于機(jī)頂盒是用遙控器的,打字是非常不方便的,導(dǎo)致很多軟件在機(jī)頂盒上使用不方便,比如瀏覽器等5 .網(wǎng)絡(luò)訪問方式:都支持WIFI連接,此外機(jī)頂盒是可以有以太網(wǎng)連接的,而手機(jī)有2G3G4G連接的6 .SD卡:機(jī)頂盒不支持外接的SDK卡,但是可以外接USB設(shè)備7 .可移動(dòng)性:這個(gè)沒有什么好說的,8 .有無

4、ActionBar機(jī)頂盒的軟件大部分都是全屏的,沒有ActionBar,更加沒有導(dǎo)航欄了(手機(jī)底部的虛擬按鍵那一排),有一些沒有狀態(tài)欄的。而手機(jī)的ActionBar樣式就多了去了9 .菜單鍵響應(yīng)機(jī)頂盒由于大部分是全屏的,導(dǎo)致響應(yīng)Menu鍵時(shí),可以才有彈出dialog,popWindow來顯示10 .圖像輸出方式手機(jī)上都是由顯示屏來顯示,而機(jī)頂盒的顯示大小跟電視機(jī)的有關(guān)系。機(jī)頂盒可以有AV輸出跟HDMI(高清)輸出。我們調(diào)試要還要找一臺(tái)電視機(jī)11 .方向性手機(jī)又橫屏跟豎屏顯示,機(jī)頂盒只有橫屏,這一點(diǎn)機(jī)頂盒開發(fā)方面簡單一下12 .推薦的東西手機(jī)一般可以彈出游戲,應(yīng)用的廣告,而機(jī)頂盒推薦的購物,視頻

5、多一點(diǎn)13 .用途機(jī)頂盒主要是用來看電視的,下載一個(gè)購物平臺(tái),直接網(wǎng)購的感覺比較爽手機(jī)主要用來打電話,娛樂等這導(dǎo)致機(jī)頂盒跟手機(jī)的APK的類型有明顯的區(qū)別14 .物理器鍵機(jī)頂盒上面的物理器件很少,除了Android系統(tǒng)必要的物理器件(CPU,內(nèi)存,無線模塊,內(nèi)置SD卡,PMU)之外,還有一個(gè)紅外接收器,AV接口,HDMI接口,網(wǎng)線接口,USB接口,電源開關(guān),藍(lán)牙。而手機(jī)上的器件就多了去了如:觸摸屏(影響操作方法,虛擬按鍵),顯示屏(影響顯示,嚴(yán)重影響耗電),一些物理按鍵(POWER,V+,V-),通信模塊(通信,訪問網(wǎng)絡(luò)),MIC(錄音),重力感應(yīng)器(影響橫豎屏,重力的判斷),陀螺儀(角速度),

6、感光器(感應(yīng)外界光線來適應(yīng)手機(jī)屏幕的連讀),camera(機(jī)頂盒可外接USB的camera可以拍照,MM自拍),電池(有些應(yīng)用可以根據(jù)當(dāng)前電量來閉關(guān)一些功能或者硬件設(shè)備),藍(lán)牙(短距離傳輸文件跟通訊,但是現(xiàn)實(shí)WIIF基本可以實(shí)現(xiàn)了)15 .按鍵機(jī)頂盒的按鍵都是在遙控器上,比手機(jī)多數(shù)字按鍵跟一些特殊按鍵(每個(gè)按鍵對(duì)應(yīng)一個(gè)功能,一般都是出廠時(shí)跟遙控器配對(duì)的,應(yīng)用開發(fā)不用關(guān)心),手機(jī)必備的虛擬按鍵HOME,BACK,MENU鍵有些有雞肋的搜索鍵,物理按鍵power,V+V-。根據(jù)這點(diǎn)機(jī)頂盒開發(fā)可以利用數(shù)字鍵看一些特殊的事16 .通知欄機(jī)頂盒的狀態(tài)欄使用的少,平常不部分是隱藏的,通過特定的控件才可以彈

7、出17 .主界面Launcher相差很大,我們開發(fā)有關(guān)系的有機(jī)頂盒上面是沒有窗口小部件的(WIDGET)18 .widget的使用機(jī)頂盒基本不能使用WIDget,原因是焦點(diǎn)難以處理,就算顯示在主界面,widget也不能正常使用,基本響應(yīng)不了OK鍵19 .耗電量機(jī)頂盒是不記用電量的1. 一個(gè)按鍵有兩個(gè)觸發(fā)點(diǎn),一是up,一是down,如果需要指定焦點(diǎn),使用view.requestFocus(),而且需要在down上執(zhí)行,因?yàn)閡p時(shí),系統(tǒng)已經(jīng)定位新的焦點(diǎn)了.再執(zhí)行就未必是想要的結(jié)果.2.3. intkeyCode=event.getKeyCode();4. if(event.getAction()=

8、KeyEvent.ACTION_UP)5. up事件,這里多數(shù)情況不需要處理.6. elsedown事件7. 或許可以直接覆蓋onKeyDown方法,而不是這個(gè).8.9. if(keyCode=KeyEvent.KEYCODE_DPAD_UP)10. elseif(keyCode=KeyEvent.KEYCODE_DPAD_LEFT)11. elseif(keyCode=KeyEvent.KEYCODE_DPAD_RIGHT)12. elseif(keyCode=KeyEvent.KEYCODE_DPAD_DOWN)13. elseif(keyCode=KeyEvent.KEYCODE_DPA

9、D_CENTER|keyCode=KeyEvent.KEYCODE_ENTER)14. 15. 這是主要處理的遙才$器的幾個(gè)方向,最后一個(gè),有些機(jī)頂盒太惡劣了,你自己看著辦吧.16.17. 方向不是研究重點(diǎn).18. 這個(gè)程序涉及的內(nèi)容較多,ui使用Fragment構(gòu)造,所以還更惡心一些.19. 比如在一個(gè)Fragment中的焦點(diǎn),先得到Fragment,Fragmenttop=getFragmentManager().findFragmentById(R.id.content);20. 然后如果需要直接定位到某一個(gè)焦點(diǎn),需要調(diào)用top中的一些方法,比如可以類型轉(zhuǎn)換為xxFragment,然后調(diào)

10、用.但是針對(duì)每一個(gè)Fragment都這樣處理上一個(gè),下一個(gè)焦點(diǎn),累死人了.而且系統(tǒng)會(huì)變慢.21.22. 多數(shù)情況需要依賴系統(tǒng)的定位,然后針對(duì)一些特殊的情況,系統(tǒng)定位失敗的再進(jìn)行定向處理.23. .24. .出現(xiàn)問題的多數(shù)是GridView,這樣的ViewGroup控件,比如現(xiàn)在有兩行,焦點(diǎn)在第一行,然后向下按鍵KeyEvent.KEYCODE_DPAD_DOWN在event.getAction()=KeyEvent.ACTION_DOWN中判斷,會(huì)出現(xiàn)不想要的結(jié)果,比如它不會(huì)定位下一個(gè)焦點(diǎn)還是GridView,也不是它的下一行,因?yàn)樗颜麄€(gè)GridView當(dāng)成一個(gè)控件,下一個(gè):finalVie

11、wdownView=currentFocus.focusSearch(View.FOCUS_DOWN);搜索得到的downView有可能是空的,有可能是另一個(gè)控件,比如Button,然而在焦點(diǎn)出現(xiàn)異常時(shí),不能在這里returntrue;這樣是無法到它第二行的.在ACTION_UP中,如果之前的down不返回true,會(huì)得到下一行焦點(diǎn).25.26. 這里提供另一種方法:還是在down中處理:27. if(currentFocusinstanceofGridView)28. GridViewgridView=(GridView)currentFocus.getParent();29. intcol

12、umn=gridView.getNumColumns();30. intselPos=gridView.getSelectedItemPosition();31. intcount=gridView.getAdapter().getCount();32. Log.d(TAG,"selPos:"+selPos+"count:"+count+"column:"+column);33. if(selPos>=column*2)/如果是GridView的最下邊,再向下,需要翻頁.34. if(fragment.pageDown()35.

13、 Log.d(TAG,"向下翻頁了.");36. 37. returntrue;38. else39. if(count<=column|(count>column&&count<=column*2&&selPos>=column)40. if(fragment.pageDown()41. Log.d(TAG,"品牌向下翻頁了,已經(jīng)是最后一頁.");42. 43. returntrue;44. 45. 46. 47. 這樣可以判斷當(dāng)GridView的焦點(diǎn)在第一行時(shí),如果選中項(xiàng)的位置也是第一行,可以依據(jù)系統(tǒng)定位,它會(huì)移動(dòng)到第二行,依次類推.如果是最后一行,其實(shí)也可以依據(jù)系統(tǒng)定位,如果沒

溫馨提示

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

評(píng)論

0/150

提交評(píng)論