欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      安卓智能機(jī)考核題目

      時(shí)間:2019-05-14 21:00:33下載本文作者:會(huì)員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《安卓智能機(jī)考核題目》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《安卓智能機(jī)考核題目》。

      第一篇:安卓智能機(jī)考核題目

      齊盛科技銷售人員題庫

      修訂中

      一、問答題

      1、問:安卓操作系統(tǒng)共有多少個(gè)版本?每個(gè)版本名稱是?

      答:1.0 1.5 1.6 2.0 2.1 2.2 2.3 3.0 4.0

      2、問:安卓和IOS的區(qū)別?

      答:安卓為開放式操作系統(tǒng),IOS是封閉的,不能進(jìn)行UI修改

      3、問:目前分辨率最高的手機(jī)是?分辨率是多少?

      答:IPHONE 460*960

      4、問:請簡單說明GPS和A-GPS 答:GPS是免費(fèi)使用.不需要進(jìn)行網(wǎng)絡(luò)連接.定位精度稍差.A-GPS是網(wǎng)絡(luò)定位,需要花費(fèi)流量.5、問:天朝移動(dòng)深度定制版安卓系統(tǒng)叫做什么?

      答: O PHONE

      6、問:手機(jī)刷機(jī)是否對手機(jī)有影響?請說明原因。

      答:沒有,手機(jī)刷機(jī)只是軟件上的更新,對硬件沒有影響.除非刷機(jī)版本較高,才出現(xiàn)運(yùn)行卡的情況

      7、問:什么是RAM?什么是ROM? 答:RAM是運(yùn)行內(nèi)存,ROM是機(jī)身內(nèi)存

      8、問:安卓系統(tǒng)每次升級必須升級的3個(gè)功能是

      答:運(yùn)行速度,省電

      9、問:安卓2.1升級2.2做了哪一項(xiàng)重要的改進(jìn)

      答:將軟件存儲(chǔ)從手機(jī)存儲(chǔ)到SD卡上

      10、問:寫出彩信和CMNET的上網(wǎng)設(shè)置

      答:連接名稱:CMNET 數(shù)據(jù)承載方式:分組數(shù)據(jù)

      接入點(diǎn):CMNET 用戶名:無

      密碼:無

      彩信:連接名稱:移動(dòng)彩信 接入點(diǎn)名稱:CMWAP 用戶名:無

      密碼:無

      主頁:mmsc.monternet.com IP地址:10.0.0.172

      11、問:安卓手機(jī)設(shè)置短信,鬧鈴和來電鈴聲需要添加什么名稱的文件夾?

      答:

      12、問:齊盛的愿景是什么?

      答:成為受人尊敬和最具創(chuàng)新能力的西南領(lǐng)先企業(yè)。

      13、問:齊盛的事業(yè)觀是什么?

      答:勤勞、敬業(yè)、誠信、團(tuán)隊(duì)、品質(zhì)、責(zé)任、創(chuàng)新、重結(jié)果。

      14、問:TCL的三個(gè)涵義?

      答:1:TELEPHONE COMMUNICATION LIMITED CORPORATION

      2、TODAY CHINA LION

      3、The Creative Life

      15、問:例舉5個(gè)基帶芯片生產(chǎn)商。

      答:ADI(模 擬 器 件-美 國)TI(德 州 儀 器-美 國)Agree(杰爾系統(tǒng)/Lucent朗訊-美國)Skyworks(思佳訊 –美國)Infineon(英飛凌-德國)Broadcom(博通-美國)Nexperia(飛利浦-荷蘭)MTK(聯(lián)發(fā)-臺(tái)灣)Spreadtrum(展訊-中國)Rockchips Electronics(瑞芯微-中國)

      16、問:OS的管理功能?

      答:進(jìn)程與處理機(jī)管理、作業(yè)管理、存儲(chǔ)管理、設(shè)備管理、文件管理

      17、問:User Interface含義?

      答:是介于用戶和手機(jī)操作系統(tǒng)之間的,人與手機(jī)之間傳遞、交換信息的媒介,是用戶使用手機(jī)操作系統(tǒng)的綜合操作環(huán)境。

      18、問:TCL通訊產(chǎn)業(yè)鏈中一共有幾個(gè)系列產(chǎn)品?請分別舉例。

      答:1.T系列(低端系列)T218,T355.I系列(互聯(lián)網(wǎng)手機(jī))i780,i808,i808籃球版,i898,i905,i908;E系列(音樂互聯(lián)網(wǎng)手機(jī)):E309,E588,E59;4.A系列(智能互聯(lián)網(wǎng)手機(jī)):A890,A990,A906,A919,A966,A998;5.平板電腦系列:pad16、openpad

      19、問:什么是FTA測試系統(tǒng)?

      答:FTA測試全稱是全面型號(hào)認(rèn)證(FULL TYPE APPROVAL)。所有的移動(dòng)電話生產(chǎn)企業(yè)為了使自己生產(chǎn)的手機(jī)能進(jìn)入市場,都必須取得國際移動(dòng)設(shè)備標(biāo)識(shí)(該標(biāo)識(shí)在全球范圍內(nèi)是唯一的),即IMEI(INTERNATIONAL MOBILE EQUIPMENT IDENTIFIER)。

      20、問:第一部手機(jī)是什么時(shí)候誕生的?誰是締造者?

      答:1973年4月,馬丁·庫帕。

      21、問:機(jī)器在無法正常開機(jī)的情況下,可以采用什么辦法強(qiáng)制啟動(dòng)。

      答:同時(shí)按電源按鈕和音量加號(hào)鍵。

      22、問:1335+1里面每個(gè)數(shù)字各代表什么內(nèi)容?

      答:1代表一句話吸引客戶 3代表三個(gè)獨(dú)特賣點(diǎn)

      3代表三個(gè)獨(dú)特賣點(diǎn)的體驗(yàn) 5代表5個(gè)技術(shù)參數(shù) 1代表一個(gè)落單動(dòng)作

      23、Android系統(tǒng)相比于其他系統(tǒng),主要優(yōu)勢在于哪些方面?(包括系統(tǒng)本身和運(yùn)營模式)

      24、請列舉出三款市面上常見的不同品牌的Android手機(jī),并簡單描述他們的優(yōu)勢和劣勢?

      25、塞班手機(jī)想借助OVI達(dá)到什么角色的轉(zhuǎn)換,并簡述OVI的理念?

      26、論述,iPhone的成功對我們智能機(jī)的發(fā)展有何啟示和借鑒?

      27、你認(rèn)為ANDROID手機(jī)在中國智能手機(jī)市場存在的優(yōu)勢和機(jī)會(huì)?請簡述。

      28、我們公司目前主打的產(chǎn)品是TCLA966,請說出主要的賣點(diǎn)。

      29、請你描述下作為一個(gè)合格的促銷他在賣場里主要的工作內(nèi)容。

      30、二、填空題

      29、當(dāng)前市場上智能機(jī)外殼主要采用鋼琴烤漆和細(xì)磨砂兩種工藝材質(zhì),鋼琴烤漆的優(yōu)點(diǎn)是亮度高,不易掉漆;細(xì)磨砂材質(zhì)的優(yōu)點(diǎn)是防滑、防指紋、防刮、冬天不冷手、夏天不粘手。

      21、給客戶演示音樂播放功能,盡量讓客戶使用耳機(jī),播放的文件必須采用ape和flac格式,這兩種格式也叫無損上傳格式。

      22、給客戶介紹功能,盡量使用少而精的介紹方法,多用軟件組合的方法,以照相為例,可以分成介紹清晰度、多點(diǎn)觸控、圖片處理、云存儲(chǔ)。

      23、定價(jià)銷售的品牌主要有TCL、金立、步步高、OPPO

      24、TCL智能機(jī)的電池觸點(diǎn)是四個(gè),因?yàn)門CL采用的是歐洲標(biāo)準(zhǔn),擁有阿爾卡特技術(shù)。

      25、決定智能機(jī)屏幕顯示效果的三要素:材質(zhì)、分辨率、屏幕色彩數(shù)。

      26、訊飛輸入法有可以直接手寫、可以連寫、可以語音識(shí)別,并且可以直接識(shí)別文字、數(shù)字、其他字符,可以識(shí)別普通話、四川話、英語。

      27、催單的時(shí)候會(huì)提封閉式的問題,例如刷卡還是付現(xiàn),紅色還是白色。

      28、TCL品牌的介紹要點(diǎn)有TCL的本來意思、全球第七大手機(jī)供應(yīng)商、擁有阿爾卡特技術(shù)、為MOTO代工1000萬臺(tái)一年。

      29、售價(jià)在1300-2000的競品智能機(jī)有聯(lián)想A500、聯(lián)想A520、金立GN105、GN106、T703.30、自成都嘉華信息實(shí)業(yè)有限公司成立以來,公司一直堅(jiān)持著:比廠家更了解我們的市場,比商家更關(guān)心他們的利潤,比員工更關(guān)心他們的未來 的企業(yè)價(jià)值觀。

      34、當(dāng)今最流行的軟件下載平臺(tái)有:安卓市場、豌豆夾、91助手、機(jī)鋒網(wǎng)。

      31、智能機(jī)發(fā)展的兩大趨勢是大屏幕旗艦和3G+智能。

      32、Android英文的意思是機(jī)器人,安卓操作系統(tǒng)的兩大特點(diǎn)是免費(fèi)和開放。

      33、OHA的中文意思是手機(jī)開放聯(lián)盟,其中成員主要包括芯片制造商、手機(jī)生產(chǎn)商、移動(dòng)運(yùn)營商、軟件開發(fā)商。

      34、世界上手機(jī)CPU生產(chǎn)商主要有德州儀器、英特爾、高通、三星、MTK。

      35、著名芯片生產(chǎn)商TI中文名為德州儀器,其主要的優(yōu)點(diǎn)是低頻高能、耗電量少,其主要缺點(diǎn)是價(jià)格不菲。

      36、Android平臺(tái)的智能手機(jī)的CPU占比最多的是高通,因?yàn)楦咄ㄊ堑谝粋€(gè)支持Android操作系統(tǒng)的芯片生產(chǎn)商,其主要優(yōu)點(diǎn)是主頻高、多媒體表現(xiàn)出色,缺點(diǎn)是對功能切換處理能力一般。

      37、三星是當(dāng)今世界上唯一能夠獨(dú)立生產(chǎn)手機(jī)任何部件的廠商,其自己生產(chǎn)的芯片主要優(yōu)點(diǎn)是耗電量低、價(jià)格便宜,缺點(diǎn)是性能較低。

      38、中國的3G網(wǎng)絡(luò)運(yùn)營商有三個(gè),中國移動(dòng)采用的是TD-SCDMA制式,中國聯(lián)通采用的是WCDMA制式、中國電信采用的是CDMA2000制式。

      39、決定手機(jī)CPU的性能的三個(gè)主要指標(biāo)有主頻、GPU、生產(chǎn)工藝。其中主頻主要表現(xiàn)CPU的運(yùn)行速度,GPU是指圖形處理能力,生產(chǎn)工藝主要決定CPU的能耗。

      40、當(dāng)今智能機(jī)市場上,屏幕分為電阻屏和電容屏,主要的屏幕材質(zhì)有TFT、SLCD、IPS、AMOLED、SUPERAMOLED。

      41、智能機(jī)與功能機(jī)最主要的差別在于是否擁有操作系統(tǒng),智能機(jī)主要有硬件、操作系統(tǒng)、軟件和網(wǎng)絡(luò)四部分組成。

      43、世界上首款搭載Android2.0系統(tǒng)的手機(jī)是由摩托羅拉公司生產(chǎn)的,它是當(dāng)時(shí)最薄的側(cè)滑全鍵盤手機(jī),它有一個(gè)很好聽的中文名字,叫里程碑。

      44、三星最新的高端智能手機(jī)系列名稱為蓋世系列,其中很有代表性的一款為I9100,它采用的屏幕材質(zhì)為 SUPER AMOLED。

      45、安卓系統(tǒng)目前應(yīng)用的最高版本為___________,其代號(hào)為“凍酸奶”,它的主要優(yōu)勢有:UI界面更加美觀、語音搜索更加方便、支持離線地圖存儲(chǔ),相比以前版本在 和 提升很大,這是目前Iphone手機(jī)所不具備的。

      46、Android系統(tǒng)支持大量的第三方應(yīng)用軟件和游戲,類似iPhone的App store,它也可以通過安卓市場進(jìn)行下載,下載完成后,安裝文件的拓展名為APK。

      47、低端智能機(jī)的目標(biāo)消費(fèi)群大致可以分為兩大類,分別是功能機(jī)轉(zhuǎn)智能機(jī)、塞班轉(zhuǎn)安卓。

      48、市面上主要的操作系統(tǒng)有Android、塞班、RIM、IOS、MEGOO、Windows 7,按照市場占比排名,前四名是Android、IOS、塞班、Windows.49、TCLA966的CPU采用的是MTK6573,主頻650MHz,屏幕3.5英寸,分辨率480x320,攝像頭是500W后置攝像頭+30W前置攝像頭,RAM256M,ROM512M。

      50、

      第二篇:安卓智能機(jī)數(shù)據(jù)恢復(fù)推薦

      現(xiàn)在大家用安卓手機(jī)成了大勢。價(jià)格相對低廉,操作方便,性價(jià)比高的安卓手機(jī)是很多智能機(jī)用戶的首選。然而,再好用的手機(jī)也會(huì)出現(xiàn)小毛病。最近老是聽周圍的朋友們抱怨好端端的手機(jī)里的照片等文件會(huì)丟失。

      現(xiàn)在手機(jī)的重要性不需要我多說,大家都明白。買了手機(jī)之后,建議定期給你的手機(jī)進(jìn)行數(shù)據(jù)備份,安卓手機(jī)的手機(jī)助手是很多的,而且手機(jī)助手都有數(shù)據(jù)備份的功能。經(jīng)常備份可以保證數(shù)據(jù)的安全性,大家一定要養(yǎng)成這個(gè)好習(xí)慣。

      但是,數(shù)據(jù)備份并不能完全解決數(shù)據(jù)丟失的問題。如果你遇到數(shù)據(jù)丟失的問題,可以試一試現(xiàn)在很流行的赤兔手機(jī)數(shù)據(jù)恢復(fù)軟件。就拿我個(gè)人使用的赤兔數(shù)據(jù)恢復(fù)來說吧。赤兔是一個(gè)免費(fèi)的的文件恢復(fù)工具,你可以使用它來恢復(fù)那些被誤刪除的的文件,能直接恢復(fù)硬盤、閃盤、存儲(chǔ)卡(如 SD 卡,MMC 卡等等)中的文件,只要沒有被重復(fù)寫入數(shù)據(jù),(重復(fù)寫入數(shù)據(jù)后是沒有辦法恢復(fù)的無論你使用什么工具)赤兔對于格式化或是刪除得文件均可直接恢復(fù),支持 FAT12,F(xiàn)AT16,F(xiàn)AT32,NTFS 文件系統(tǒng)。赤兔搜索被刪除文件的速度很快,選擇好要掃描的驅(qū)動(dòng)器后點(diǎn)擊掃描按鈕即可。迅龍可以簡單方便的恢復(fù)你寶貴的資料,有赤兔在手你一切都不用怕,隨便你怎么誤刪除文件。當(dāng)然啦,最好的辦法還是不要丟失數(shù)據(jù)!

      總的來說這款手機(jī)赤兔數(shù)據(jù)恢復(fù)軟件對于word辦公、文件圖片文件可以恢復(fù)前預(yù)覽,非常實(shí)用,有必要的話你可以在網(wǎng)上下載這個(gè)軟件試試,總體而言還是在同類軟件中性價(jià)比是比較不錯(cuò)的。最后友情提醒:保護(hù)好自己的數(shù)據(jù)也是人人有責(zé)喲!

      第三篇:銷售員必須知道的智能機(jī)、安卓、MTK6573基本常識(shí)

      銷售員必須知道的智能機(jī)、安卓、MTK6573基本常識(shí) 什么是智能機(jī)?!說通俗一點(diǎn)就是一個(gè)簡單的“1+1=”的公式,“掌上電腦+手機(jī)=智能手機(jī)”。從廣義上說,智能手機(jī)除了具備手機(jī)的通話功能外,還具備了PDA的大部分功能,特別是個(gè)人信息管理以及基于無線數(shù)據(jù)通信的瀏覽器和電子郵件功能。智能手機(jī)為用戶提供了足夠的屏幕尺寸和帶寬,既方便隨身攜帶,又為軟件運(yùn)行和內(nèi)容服務(wù)提供了廣闊的舞臺(tái),很多增值業(yè)務(wù)可以就此展開,如:股票、新聞、天氣、交通、商品、應(yīng)用程序下載、音樂圖片下載等等。

      智能機(jī)需要具備的幾個(gè)條件。具備普通手機(jī)的全部功能,能夠進(jìn)行正常的通話,發(fā)短信等手機(jī)應(yīng)用。

      具備無線接入互聯(lián)網(wǎng)的能力,即需要支持GSM網(wǎng)絡(luò)下的GPRS或者CDMA網(wǎng)絡(luò)下的CDMA 1X或者3G網(wǎng)絡(luò)。

      具備PDA的功能,包括PIM(個(gè)人信息管理),日程記事,任務(wù)安排,多媒體應(yīng)用,瀏覽網(wǎng)頁。

      具備一個(gè)具有開放性的操作系統(tǒng),在這個(gè)操作系統(tǒng)平臺(tái)上,可以安裝更多的應(yīng)用程序,從而使智能手機(jī)的功能可以得到無限的擴(kuò)充。

      智能機(jī)與功能機(jī)的不同?智能機(jī)支持在互聯(lián)網(wǎng)全面的搜索、下載、和應(yīng)用安裝,給用戶帶來類平板電腦的全面體驗(yàn);尤其是在跟3G網(wǎng)絡(luò)相結(jié)合更是讓智能手機(jī)成為了一部小巧的便于攜帶,功能多樣、應(yīng)用廣泛的掌上電腦,辦公、娛樂、生活面面俱到,不再需要電紙書,不再需要商務(wù)通、不再需要電子詞典、不再需要MP4、不再需要GPS導(dǎo)航,不再需要掌上游戲機(jī),所有一切智能機(jī)幫你完全HOLD?。?/p>

      智能機(jī)的廣泛用途。高速上網(wǎng):智能機(jī)與3G網(wǎng)絡(luò)相組合構(gòu)成高速便捷的上網(wǎng)功能,提供相對功能機(jī)更加便捷、豐富的網(wǎng)絡(luò)資源和網(wǎng)絡(luò)應(yīng)用,看書、看視頻、瀏覽資訊、聽歌、翻網(wǎng)頁智能手機(jī)比便攜電腦更加便捷;

      多重通訊:智能手機(jī)的通訊功能不再局限于打電話、發(fā)短信或是簡單的QQ聊天,隨著智能機(jī)的發(fā)展,視頻電話、語音聊天變得更加簡單,原有的QQ、飛信、MSN在手機(jī)上擁有越來越多的功能,和使用電腦基本沒有區(qū)別;

      時(shí)事灌水:隨著智能機(jī)的普及,資訊傳播的方式更加多樣化,微薄的出現(xiàn)讓人們對時(shí)事、評論擁有了更強(qiáng)的參與性和更多的發(fā)言權(quán),爆料、求助、評論讓整個(gè)網(wǎng)絡(luò)成為一個(gè)更加公開、透明、豐富的信息圈;

      游戲娛樂:基于智能手機(jī)開發(fā)的眾多游戲(益智休閑、動(dòng)作競技、射擊冒險(xiǎn)、體育競速、角色扮演、經(jīng)營策略、網(wǎng)絡(luò)模擬)讓人們繁忙閑暇的娛樂更加多樣化,讓平淡的生活更加豐富多彩;

      學(xué)習(xí)辦公:郵件系統(tǒng)、文件管理系統(tǒng)、專業(yè)電子書、各類電子詞典讓您便捷學(xué)習(xí)辦公;智能機(jī)常用輔助平臺(tái)(Android)豌豆莢: 全程“豌豆莢手機(jī)精靈”是一款安裝在桌面電腦上的軟件,把手機(jī)和電腦連接上后,可通過“豌豆莢手機(jī)精靈”在電腦上管理手機(jī)中的通訊錄、短信、應(yīng)用程序和音樂等,也能在電腦上備份手機(jī)中的資料。此外,可直接一鍵下載眾多主流應(yīng)用網(wǎng)站資源、程序、游戲,完成手機(jī)的管理安裝。

      91助手: 91手機(jī)助手是由網(wǎng)龍公司推出的第三方智能手機(jī)管理軟件,是目前全球唯一一款全面支持IPhone、Windows Mobile、Android、Wince、Sym-bian S60五大智能手機(jī)系統(tǒng)的PC端管理軟件。具有智能手機(jī)主題、壁紙、鈴聲、音樂、電影、軟件、電子書的搜

      索、下載、安裝的功能。連接91手機(jī)助手即可自動(dòng)更新訂閱RSS,為PC客戶端與移動(dòng)閱讀搭建了無縫鏈接的橋梁。

      其他: 360手機(jī)助手(與91合作)、QQ手機(jī)同步管理

      輔助平臺(tái)(Android)相關(guān)設(shè)置,使用輔助平臺(tái)(豌豆莢、91助手等)需要對手機(jī)提前設(shè)置;

      首先需要在設(shè)置——應(yīng)用程序下勾選“未知源”

      其次需要在設(shè)置——應(yīng)用程序——開發(fā)下勾選“USB調(diào)試”

      然后用數(shù)據(jù)線吧手機(jī)與電腦相連接;

      注:在豌豆莢和91助手中都可以設(shè)計(jì)應(yīng)用直接安裝到SD卡,建議不要直接安裝到手機(jī),這樣可以提高你手機(jī)的運(yùn)行速率和反應(yīng)速度;

      頂級配置——MT6573芯片:MT6573為聯(lián)發(fā)科技推出的支持全球成長最快的AndroidTM 最新操作系統(tǒng)的智能型手機(jī)芯片解決方案。聯(lián)發(fā)科技推出此款搭載豐富多媒體、高整合、低功耗的3.5G智能型手機(jī)解決方案,其高性價(jià)比將不僅僅符合運(yùn)營商的需求,更符合新興市場對于平價(jià)3G移動(dòng)產(chǎn)品的迫切需求。

      特點(diǎn):MT6573高度整合基帶(Baseband)、多媒體處理器(Application processor)以及必要的電源管理組件成為一顆系統(tǒng)單芯片,大幅降低占板面積以及所需零器件,同時(shí)也支持聯(lián)發(fā)科技全系列無線連接芯片組包括藍(lán)牙、WiFi、FM Radio、GPS以及手機(jī)電視等規(guī)格,其低成本高兼容性不但提供手機(jī)制造商產(chǎn)品差異化的靈活度,同時(shí)縮短上市時(shí)間。

      參數(shù):MT6573采用ARM11的AP處理器主頻達(dá)到650 MHz,modem支持 HSPA速度達(dá) 7.2Mbps/5.76Mbps,支持雙卡雙待,其優(yōu)異性能還包括支持豐富多媒體高端規(guī)格:支持8百萬像素照相機(jī)并支持自動(dòng)對焦、臉部偵測、微笑快門,并支持高達(dá)FWVGA 30fps流暢的錄像以及影像播放,觸摸屏幕支持FWVGA的分辨率等。除此之外,MT6573優(yōu)化的硬件設(shè)計(jì)支持功能強(qiáng)大的3D圖像處理技術(shù),優(yōu)于其他同等級CPU的3D圖像處理表現(xiàn),能將AndroidTM平臺(tái)3D UI設(shè)計(jì)的精致度生動(dòng)完美的呈現(xiàn)。

      第四篇:安卓學(xué)習(xí)心得

      Android學(xué)習(xí)心得

      -----093380117

      計(jì)算機(jī)應(yīng)用(1)

      張峰

      1.關(guān)于Activity

      1.在一個(gè)Activity中使用多個(gè)View

      如果把Activity看作MVC中的Control?它負(fù)責(zé)管理UI和接受事件(包括用戶的輸入),雖然說一個(gè)Activity通常對應(yīng)一個(gè)屏幕,但事實(shí)上,我們是可以只用一個(gè)Activity管理多個(gè)不同的View來實(shí)現(xiàn)簡單的邏輯。首先,我們增加一個(gè)新的資源描述layout/second.xml。

      除了一個(gè)“Hello中國”以外,增加一個(gè)按鈕可以返回前一個(gè)界面。然后,在代碼中我們要為helloTwo增加兩個(gè)方法,setViewOneCommand和setViewTwoCommand,分別處理一下在不同界面時(shí),從資源里加載組件并為組件綁定一個(gè)事件處理器最后,我們需要在onCreate的時(shí)候,也就是啟動(dòng)后的main界面上設(shè)置一下按鈕事件處理器。2.還是回到正道上,多個(gè)Activity之間的跳轉(zhuǎn)

      Android中提供一個(gè)叫Intent的類來實(shí)現(xiàn)屏幕之間的跳轉(zhuǎn),按文檔的說法,似乎他們也建議采用這種方法,Intent的用法比較復(fù)雜,現(xiàn)在我先看看它最簡單的用法。

      這里的跳轉(zhuǎn)功能用Intent來操作,它的最簡單用法就是用函數(shù)setClass()設(shè)置跳轉(zhuǎn)前后兩個(gè)Activity類的實(shí)例,然后調(diào)用Activity自己的startActivity(intent)即可。最后一句finish()表示將當(dāng)前Activity關(guān)掉(如果不關(guān)掉會(huì)如何?你可以自己試一下看效果,事實(shí)上有時(shí)我們是不需要關(guān)掉當(dāng)前Activity的)。

      然后,我們同樣弄一個(gè)Activity類HelloThreeB,代碼與前面的差不多,只是將setClass的兩個(gè)參數(shù)反一下,這樣就可以簡單地實(shí)現(xiàn)在兩個(gè)Activity界面中來回切換的功能了。

      2.關(guān)于 Intent的使用

      Intent分為兩大類,顯性的(Explicit)和隱性的(Implicit)。一般來說,intent要定位事件的目的地,無外乎需要以下幾個(gè)信息: 1.種類(category),比如我們常見的 LAUNCHER_CATEGORY 就是表示這是一類應(yīng)用程序。

      2.類型(type),在前面的例子中沒用過,表示數(shù)據(jù)的類型,這是隱性Intent定位目標(biāo)的重要依據(jù)。

      3.組件(component),前面的例子中用的是setClass,不過也可以用setComponent來設(shè)置intent跳轉(zhuǎn)的前后兩個(gè)類實(shí)例。4.附加數(shù)據(jù)(extras),在ContentURI之外還可以附加一些信息,它是Bundle類型的對象。

      其實(shí),如果是在一個(gè)應(yīng)用內(nèi)部,這種隱性的intent實(shí)在有點(diǎn)別扭,個(gè)人覺得,這種松藕合的實(shí)現(xiàn)方法,只適用于那些較大的系統(tǒng)或者多個(gè)不同的應(yīng)用之間的調(diào)用,可手機(jī)上又有什么“較大”的系統(tǒng)呢?無非是可以與不同來源的多個(gè)應(yīng)用之間方便地互操作而已,那么會(huì)是什么樣的場景呢?比如,給QQ好友發(fā)送gmail郵件,用GoogleMap查找QQ好友所在的位置?看上去挺不錯(cuò)的。

      關(guān)于這個(gè)ContentProvider,其實(shí)還有話說,它主要是的那些看似數(shù)據(jù)庫操作的方法我們都沒真正去實(shí)現(xiàn)呢。不過今天就到這里了,等下回再去研究吧。

      3.關(guān)于ListActivity

      準(zhǔn)備一個(gè)List對象并借助Adapter就可以構(gòu)造出一個(gè)列表。重載onListItemClick方法可以響應(yīng)選擇事件,利用第一個(gè)參數(shù)可以訪問到這個(gè)ListView實(shí)例以得到選中的條目信息。這里有一點(diǎn)要說明的,就是如果更簡單的話,其實(shí)連那個(gè)setContentView都可以不要了,Android也會(huì)自動(dòng)幫我們構(gòu)造出一個(gè)全屏的列表。但是本例中我們需要一個(gè)TextView來顯示選中的條目,所以我們需要一個(gè)layout.mainb描述一下這個(gè)列表窗口。

      這里需要注意的是那個(gè)ListView的ID,是系統(tǒng)自定義的android:list,不是我們隨便取的,否則系統(tǒng)會(huì)說找不到它想要的listview了。然后,在這個(gè)listview之外,我們又增加了一個(gè)TextView,用來顯示選中的條目。

      再來說說這里用到的ArrayAdapter,它的構(gòu)造函數(shù)中第二個(gè)參數(shù)是一個(gè)資源ID,ArrayAdapter的API文檔中說是要求用一個(gè)包含TextView的layout文件,平臺(tái)用它來顯示每個(gè)選擇條目的樣式,這里的取值是R.layout.list_row,所以,我們還有一個(gè)list_row.xml文件來描述這個(gè)布局,相當(dāng)簡單。

      從ArrayAdapter上溯到BaseAdapter,發(fā)現(xiàn)還有幾個(gè)同源的Adapter也應(yīng)該可以使用,象SimpleAdapter和CursorAdapter,還是做個(gè)例子來實(shí)驗(yàn)一下吧。

      然后,在HelloTwoB中的onCreate函數(shù)中,修改代碼,有幾個(gè)不同:items的元素是HashMap實(shí)例,這是一點(diǎn)變化,然后構(gòu)造函數(shù)除了要求items以外,還要求提供一個(gè)string[]來說明用hash表中的哪個(gè)字段顯示在列表中,而后是一個(gè)資源ID的數(shù)組。

      因?yàn)閱渭兊腃ursorAdapter是抽象類,所以我用的是它的子類SimpleCursorAdapter,很好理解,先用ContentResolver查詢通訊簿得到一個(gè)游標(biāo),然后告訴SimpleCursorAdapter要用其中的People.NAME作為顯示項(xiàng)來構(gòu)造出一個(gè)adapter即可。4.關(guān)于Dialog

      注意到android.app包下除了Dialog(可用于制作復(fù)雜的對話框)以外,還包括了幾個(gè)系統(tǒng)定義好的對話框類,如DatePickerDialog、TimePickerDialog及AlertDialog。

      其中AlertDialog我上回用過一次,基本上就那樣子了,今天看看另外兩個(gè)對話框的使用吧。

      很簡單的,無非是需要一個(gè)OnDateSetListener接口的實(shí)現(xiàn)而已,在它里面的dateSet方法中就可以得到選擇的日期了。而TimePickerDialog與DatePickerDialog使用如出一轍。

      看看另一個(gè)ProgressDialog的用法吧,這個(gè)類與AlertDialog一樣包含了多個(gè)static的方法,所以使用起來是非常方便的。比如說,如果我們需要用它來表示一個(gè)長時(shí)間的操作。

      5.關(guān)于Service和Notification

      大略地看了一下android.app下的Service類,覺得它與Activity非常相似,只是要注意幾個(gè)地方:

      1.生命周期,Service的從onCreate()->onStart(int,Bundle)->onDestroy()顯得更為簡單。但是它的onStart是帶參數(shù)的,第一個(gè)ID可用來標(biāo)識(shí)這個(gè)service,第二個(gè)參數(shù)顯示是用來傳遞數(shù)據(jù)的了。比較Activity,傳遞數(shù)據(jù)的Bundle是在onCreate就帶進(jìn)入的。

      2.Service的啟動(dòng)由Context.startService開始,其實(shí)Activity或者Service都是Context的派生類。結(jié)束于Context.stopService()或者它自己的stopSelf()。

      3.Service還有一個(gè)與Activity不一樣的是它可以由另一個(gè)Context去綁定一個(gè)已存在的Service。就是這個(gè)方法Context.bindService(),被綁定的Service要求是已經(jīng)onCreate了但可以沒有onStart。在Service類中有個(gè)抽象方法getBinder()可以得到這個(gè)IBinder對象。關(guān)于這方面的細(xì)節(jié),以后再看,這里只做個(gè)記錄罷。

      4.與Service有關(guān)的還有一個(gè)安全的問題,可以在AndroidManifest.xml中用標(biāo)簽來聲明一個(gè)Service的訪問權(quán)限,關(guān)于Android的安全問題也留待以后再解決吧。

      6.GridView與ImageView

      簡單一點(diǎn)吧,就瞧瞧那個(gè)Grid的效果,Android提供了一個(gè)GridView,不過從APIDemo中看來,它似乎與PC上的GRID差別還是挺大的,更像那個(gè)IconView的感覺。不知道Android中如何實(shí)現(xiàn)表格界面?雖然在移動(dòng)終端上,表格一般不會(huì)有誰使用,大家似乎更傾向于使用ListView,而Android對于ListView則有更簡單的實(shí)現(xiàn)ListActivity。

      很簡單,只要重載幾個(gè)方法就可以了,關(guān)鍵是那個(gè)getView方法,它負(fù)責(zé)構(gòu)建出每個(gè)單元格中的對象實(shí)例。這里我們構(gòu)造的是一個(gè)ImageView實(shí)例。

      然后就是同樣的將這個(gè)Adapter賦給GridView即可,大家可以看看效果,注意在做這個(gè)例子前,先放幾個(gè)小圖片到res/drawable目錄下,buildproject一下就可以得到那個(gè)R.drawable.a了(這里的a是圖像文件名,如a.png)。

      在getView方法中我們使用了ImageView類,這又是一個(gè)widget。除了上面用到的幾個(gè)方法以外,還有以下幾個(gè)方法值得注意: 與圖像來源有關(guān)的方法,我們只用了資源文件的方式。

      還是習(xí)慣性跑題了,其實(shí),我是想通過我對這個(gè)類的無數(shù)次Debugger跟進(jìn),說說它的多線程異步處理的解決策略的。他的基本策略如下: 1.當(dāng)你實(shí)例化一個(gè)AsyncQueryHandler類時(shí)(包括其子類...),它會(huì)單件構(gòu)造一個(gè)線程(后面會(huì)詳述...),這個(gè)線程里面會(huì)構(gòu)建一個(gè)消息循環(huán)。

      2.獲得該消息循環(huán)的指針,用它做參數(shù)實(shí)例化另一個(gè)Handler類,該類為內(nèi)部類。至此,就有了兩個(gè)線程,各自有一個(gè)Handler來處理消息。3.當(dāng)調(diào)用onXXX的時(shí)候,在XXX函數(shù)內(nèi)部會(huì)將請求封裝成一個(gè)內(nèi)部的參數(shù)類,將其作為消息的參數(shù),將此消息發(fā)送至另一個(gè)線程。4.在該線程的Handler中,接受該消息,并分析傳入的參數(shù),用初始化時(shí)傳入的ContentResolver進(jìn)行XXX操作,并返回Cursor或其他返回值。

      5.構(gòu)造一個(gè)消息,將上述返回值以及其他相關(guān)內(nèi)容綁定在該消息上,發(fā)送回主線程。

      6.主線程默認(rèn)的AsyncQueryHandler類的handleMessage方法(可自定義,但由于都是內(nèi)部類,基本沒有意義...)會(huì)分析該消息,并轉(zhuǎn)發(fā)給對應(yīng)的onXXXComplete方法。

      7.用戶重寫的onXXXComplete方法開始工作。

      這就是它偷偷摸摸做過的事情,基本還是很好理解的。我唯一好奇的是它的線程管理方式,我猜測他是用的單件模式。第一個(gè)AsyncQueryHandler的實(shí)例化會(huì)導(dǎo)致創(chuàng)建一個(gè)線程,從此該線程成為不死老處男,所有的ContentResolver相關(guān)的工作,都由該線程統(tǒng)一完成。個(gè)人覺得這種解決方式很贊。本來這個(gè)線程的生命周期就很難估量,并且,當(dāng)你有一個(gè)ContentProvider的請求的時(shí)候,判斷你會(huì)做更多的類似操作并不過分。就算錯(cuò)了,花費(fèi)的也只是一個(gè)不死的線程(與進(jìn)程同生死共存亡...),換來的卻是簡單的生命周期管理和無數(shù)次線程生死開銷的節(jié)約。同時(shí)另外一個(gè)很重要的問題,他并會(huì)涉及到單件中數(shù)據(jù)同步的問題,每個(gè)類都有各自的Handler類,彼此互不干擾,分發(fā)可以分別進(jìn)行。當(dāng)多個(gè)數(shù)據(jù)請求的時(shí)候,在同一個(gè)ContentResolver上進(jìn)行的可能微乎其微,這就避免了堵塞??偠灾?,這套解決辦法和Android的整體設(shè)計(jì)算是天作之合了。

      所以建議,如果你有什么非ContentProvider操作,卻需要異步多線程執(zhí)行的話,模擬一套,是個(gè)不錯(cuò)的策略,當(dāng)然,具體情況具體分析,生搬硬套是學(xué)不好馬列主義的。

      7.顯示控件使用

      Android的界面顯示同樣也是基于控件的。通常是用View(包括ViewGroup)控件配上XML的樣式來做的。具體細(xì)節(jié)不想說了,可以參考 Samples里的ApiDemos/View,和View的Doc,以及Implementing a UI這篇Doc。其他還有很多,感覺算是SDK講述的最多的內(nèi)容。

      從控件的使用上,和網(wǎng)頁的設(shè)計(jì)類似,盡量用parent_width之類的抽象長度,用Theme來做風(fēng)格,抽取所有的字串等信息做本地化設(shè)計(jì)。相關(guān)內(nèi)容參看Implementing a UI就好。

      一類比較重要的是數(shù)據(jù)綁定控件。如果做過ASP.Net會(huì)從中看到很多類似的地方。一個(gè)支持?jǐn)?shù)據(jù)綁定的控件,比如ListView??梢酝ㄟ^一個(gè) ListAdapter綁定到一個(gè)數(shù)據(jù)源上。ListAdapter是一個(gè)抽象類,主要的實(shí)現(xiàn)類包括SimpleAdapter和 SimpleCursorAdapter。前者是綁定一個(gè)靜態(tài)的Array,后者是綁定一個(gè)動(dòng)態(tài)的Cursor。Cursor前面說過,是一個(gè)指向數(shù)據(jù)源的隨機(jī)迭代器,將View綁定到Cursor通常要設(shè)置這樣幾個(gè)參數(shù)。一個(gè)是每一行的樣式,稱作Row Layout,其實(shí)就是一個(gè)普通的Layout的XML文件。還有就是一個(gè)列和現(xiàn)實(shí)控件的對應(yīng)關(guān)系。那個(gè)控件顯示哪個(gè)列的值,這是需要配置的。為了定制一個(gè)良好的數(shù)據(jù)顯示控件,最簡單你可以定制很PP的Row Layout,復(fù)雜一點(diǎn)就是可以重載綁定控件View,或者是適配器ListAdapter。如果是一個(gè)數(shù)據(jù)顯示密集的應(yīng)用,且你對UI有些追求,這個(gè)工作估計(jì)是必不可少的。

      一個(gè)主要用于顯示數(shù)據(jù)內(nèi)容的Activity,可以選擇派生自ListActivity。它提供了一個(gè)具有ListView 的Layout,還有simple_list_item_1, simple_list_item_2, two_line_list_item等默認(rèn)的Row Layout,還有一些比較不錯(cuò)的API,和可供響應(yīng)選擇Item的事件。可以滿足你比較基礎(chǔ)的需求。如果你覺得只有一個(gè)ListView的界面太突兀,你可以為這個(gè)ListActivity指定一個(gè)Layout,需要注意的是,你需要提供一個(gè)id為@android:id/list的ListView控件,避免Activity在內(nèi)部偷偷尋找該控件的時(shí)候失敗。

      除了這些要求,做好UI還有注意易用性和效率??旖萱I是一個(gè)比較不錯(cuò)的選擇,在 Activity中調(diào)用setDefaultkeyMode(SHORTCUT_DEFAULT_KEYS),可以開啟快捷鍵模式,然后你可以將菜單綁定到指定快捷鍵上就OK了。個(gè)人覺得Tip也是一個(gè)比較重要的東西,但目前觀察看來,這個(gè)東西只能夠自己提供了。界面的動(dòng)態(tài)性有時(shí)候是不可避免的,比如說菜單就是一個(gè)需要經(jīng)常根據(jù)光標(biāo)位置提供不同的選項(xiàng)。這個(gè)東西Android很人道的考慮到了,你可以參看NodeList這個(gè)Sample。它采取的應(yīng)該是一個(gè)靜態(tài)模擬動(dòng)態(tài)的方式,這樣有助于提高速度。你也可以利用ViewInflate,動(dòng)態(tài)從一個(gè)XML創(chuàng)建一個(gè)控件。成本據(jù)Doc說很大,不到萬不得已不要使用。

      8.Intent消息傳遞

      在前面寫Android的ContentProvider時(shí)候,可以看到那是基于觀察者模式的一個(gè)消息傳遞方法。每一個(gè)Cursor、ContentResolver做為一個(gè)小的注冊中心,相關(guān)觀察者可以在這個(gè)中心注冊,更新消息由注冊中心分發(fā)給各個(gè)觀察者。而在MFC或Winform中,都會(huì)形成一個(gè)消息網(wǎng),讓消息在網(wǎng)中流動(dòng),被各節(jié)點(diǎn)使用、吃掉或者在出口死掉。

      相比之下,我個(gè)人覺得基于Intent的Android核心消息傳遞機(jī)制是有所不同的。它應(yīng)該會(huì)有一個(gè)全局性的注冊中心,這個(gè)注冊中心是隱性的,整個(gè)Android系統(tǒng)中就那么一個(gè)。所有的消息接收者,都被隱形的注冊到這個(gè)中心。包括Activity,Service和IntentReceiver。其實(shí)說隱形注冊是不確切的,所有注冊都還是我們手動(dòng)告訴注冊中心的,只是與傳統(tǒng)的方式不一樣,我們通常不是通過代碼,而是通過配置文件來做。在應(yīng)用的Manifest中,我們會(huì)為一些Activity或Service添加上Intent-filter,或在配置文件中添加項(xiàng)。這其實(shí)就相當(dāng)于向系統(tǒng)的注冊中心,注冊了相關(guān)的Intent-filter和receiver(這個(gè)事情完全可以通過代碼來做,只是這樣就失去了修改的靈活性)。

      當(dāng)程序有一個(gè)消息希望發(fā)出去的時(shí)候,它需要將消息封裝成一個(gè)Intent,并發(fā)送。這時(shí)候,應(yīng)該是有一個(gè)統(tǒng)一的中心(恩,有可能Android底層實(shí)現(xiàn)的時(shí)候不是,但簡單這樣看是沒問題的...)接受到這個(gè)消息,并對它進(jìn)行解析、判定消息類型(這個(gè)步驟降低了耦合...),然后檢查注冊了相匹配的filter或receiver,并創(chuàng)建或喚醒接收者,將消息分發(fā)給它。這樣做有很多好處。雖然這種傳遞有的時(shí)候不如點(diǎn)對點(diǎn)的傳遞快(這有些需要速度的地方,我們看到Android會(huì)通過直接通信來做),但有時(shí)候又因?yàn)樗唤?jīng)過一跳(姑且這么叫吧...),比復(fù)雜的流動(dòng)又要更快。更重要的是,它耦合性低,在手機(jī)平臺(tái)這種程序組件多變的條件下使用十分適合。并且它可以很容易實(shí)現(xiàn)消息的精確或模糊匹配,彈性很大。(我個(gè)人曾想在開發(fā)一個(gè)C++二次平臺(tái)的時(shí)候引入這樣的機(jī)制,但在C++中,建立一套完整的數(shù)據(jù)marshal機(jī)制不容易,相比之下,用java來做會(huì)簡單很多...)

      恩,廢話說了很多,具體講講Android中Intent的使用。當(dāng)你有一個(gè)消息需要傳遞,如果你明確知道你需要哪個(gè)Activity或者其他Class來響應(yīng)的話,你可以指定這個(gè)類來接受該消息,這被稱為顯性發(fā)送。你需要將Intent的class屬性設(shè)置成目標(biāo)。這種情況很常見,比如startActivity的時(shí)候,會(huì)清楚當(dāng)前Activity完了應(yīng)該是哪個(gè)Activity,那就明確的發(fā)送這個(gè)消息。

      但是,有的時(shí)候你并不確定你的消息是需要具體哪個(gè)類來執(zhí)行,而只是知道接收者該符合哪些條件。比如你只需要有一個(gè)接收者能顯示用戶所選的數(shù)據(jù),而不想制定某個(gè)具體的方法,這時(shí)候你就需要用到隱形發(fā)送(傳統(tǒng)上,我們可能會(huì)考慮用多態(tài),但顯然這種方式更為靈活...)。在Android中,你可以為Intent指定一個(gè)action,表示你這個(gè)指令需要處理的事情。系統(tǒng)為我們定義了很多Action類型,這些類型使系統(tǒng)與我們通信的語言(比如在Activity里面加一個(gè)Main的filter,該activity就會(huì)做成該應(yīng)用的入口點(diǎn)),當(dāng)然你也可以用于你自己的應(yīng)用之間的通信(同樣當(dāng)然,也可以自定義...)。強(qiáng)烈建議,在自己程序接收或發(fā)出一個(gè)系統(tǒng)action的時(shí)候,要名副其實(shí)。比如你響應(yīng)一個(gè)view動(dòng)作,做的確實(shí)edit的勾當(dāng),你發(fā)送一個(gè)pick消息,其實(shí)你想讓別人做edit的事,這樣都會(huì)造成混亂。當(dāng)然只有Action有時(shí)候是不夠的,在Android中我們還可以指定catalog信息和type/data信息,比如所有的顯示數(shù)據(jù)的Activity,可能都會(huì)響應(yīng)View action。但很多與我們需要顯示的數(shù)據(jù)類型不一樣,可以加一個(gè)type信息,明確的指出我們需要顯示的數(shù)據(jù)類型,甚至還可以加上一個(gè)catalog信息,指明只有你只有按的是“中鍵”并發(fā)出這樣的消息才響應(yīng)。從上面可以看出,Android的Intent可以添加上class, action, data/type, catalog等消息,注冊中心會(huì)根據(jù)這些信息幫你找到符合的接收者。其中class是點(diǎn)對點(diǎn)的指示,一旦指明,其他信息都被忽略。Intent中還可以添加key/value的數(shù)據(jù),發(fā)送方和接收方需要保持統(tǒng)一的key信息和value類型信息,這種數(shù)據(jù)的marshal在java里做,是不費(fèi)什么力氣的。

      Android的Intent發(fā)送,可以分成單播和廣播兩種。廣播的接收者是所有注冊了的符合條件的IntentReceiver。在單播的情況下,即使有很多符合條件的接收者,也只要有一個(gè)出來處理這個(gè)消息就好(恩,個(gè)人看法,沒找到確切條款或抉擇的算法,本來想實(shí)驗(yàn)一下,沒來得及...),這樣的情況很容易理解,當(dāng)你需要修改某個(gè)數(shù)據(jù)的時(shí)候,你肯定不會(huì)希望有十個(gè)編輯器輪流讓你來處理。當(dāng)廣播不是這樣,一個(gè)receiver沒有辦法阻止其他receiver進(jìn)行對廣播事件的處理。這種情況也很容易理解,比如時(shí)鐘改變了,鬧鐘、備忘錄等很多程序都需要分別進(jìn)行處理。在自己的程序的使用中,應(yīng)該分清楚區(qū)別,合理的使用。

      9.ContentProvider數(shù)據(jù)模型

      數(shù)據(jù)庫操作

      從我目前掌握的知識(shí)來看,SQLite比較輕量(沒有存儲(chǔ)過程之類的繁雜手段),用起來也比較簡單。實(shí)例化一個(gè)SQLiteDatabase類對象,通過它的APIs可以搞定大部分的操作。從sample中看,Android中對db的使用有一種比較簡單的模式,即派生一個(gè) ContentProviderDatabaseHelper類來進(jìn)行SQLiteDatabase對象實(shí)例的獲取工作。基本上,ContentProviderDatabaseHelper類扮演了一個(gè)singleton的角色,提供單一的實(shí)例化入口點(diǎn),并屏蔽了數(shù)據(jù)庫創(chuàng)建、打開升級等細(xì)節(jié)。在ContentProvider中只需要調(diào)用ContentProviderDatabaseHelper的openDatabase方法獲取SQLiteDatabase的實(shí)例就好,而不需要進(jìn)行數(shù)據(jù)庫狀態(tài)的判斷。URI 像進(jìn)行數(shù)據(jù)庫操作需要用SQL一樣,對ContentProivder進(jìn)行增刪改查等操作都是通過一種特定模式的URI來進(jìn)行的(ig:content: //provider/item/id),URI的能力與URL類似,具體細(xì)節(jié)可以查看SDK。建立自己的ContentProvider,只需要派生 ContentProivder類并實(shí)現(xiàn)insert, delete, update等抽象函數(shù)即可。在這些接口中比較特殊的是getType(uri)。根據(jù)傳入的uri,該方法按照MIME格式返回一個(gè)字符串(==!沒聽過的詭異格式...)唯一標(biāo)識(shí)該uri的類型。所謂uri的類型,就是描述這個(gè)uri所進(jìn)行的操作的種類,比如content://xx/a與 content://xx/a/1不是一個(gè)類型(前者是多值操作,后者是單值),但content://xx/a/1和content://xx/a/2 就會(huì)是一個(gè)類型(只是id號(hào)不同而已)。

      在ContentProvider通常都會(huì)實(shí)例化一個(gè)ContentURIPraser來輔助解析和操作傳入的URI。你需要事先(在static域內(nèi))為該ContentURIPraser建立一個(gè)uri的語法樹,之后就可以簡單調(diào)用 ContentURIPraser類的相關(guān)方法進(jìn)行uri類型判斷(match方法),獲取加載在uri中的參數(shù)等操作。但我看來,這只是在使用上簡化了相關(guān)操作(不然就需要自己做人肉解析了...),但并沒有改變類型判定的模式。你依然需要用switch...case...對uri的類型進(jìn)行判斷,并進(jìn)行相關(guān)后續(xù)的操作。從模式來看,這樣無疑是具有強(qiáng)烈的壞味道,類似的switch...case...代碼要出現(xiàn)N此,每次一個(gè) ContentProvider做uri類型的增減都會(huì)需要遍歷修改每一個(gè)switch...case...,當(dāng)然,如果你使用模式(策略模式...)進(jìn)行改造對手機(jī)程序來說無疑是崩潰似的(類型膨脹,效率降低...),所以,只能是忍一忍了(恩,還好不會(huì)擴(kuò)散到別的類中,維護(hù)性上不會(huì)有殺人性的麻煩...)。增刪改查

      ContentProvider 和所有數(shù)據(jù)源一樣,向外提供增刪改查操作接口,這些都是基于uri的指令。進(jìn)行insert操作的時(shí)候,你需要傳入一個(gè)uri和 ContentValues。uri的作用基本就限于指明增減條目的類型(從數(shù)據(jù)庫層面來看就是table名),ContentValues是一個(gè) key/value表的封裝,提供方便的API進(jìn)行插入數(shù)據(jù)類型和數(shù)據(jù)值的設(shè)置和獲取。在數(shù)據(jù)庫層面上來看,這應(yīng)該是column name與value的對應(yīng)。但為了屏蔽ContentProvider用戶涉及到具體數(shù)據(jù)庫的細(xì)節(jié),在Android的示例中,用了一個(gè)小小的模式。它為每一個(gè)表建一個(gè)基于BaseColumn類的派生類(其實(shí)完全可以不派生自BaseColumn,特別當(dāng)你的表不基于默認(rèn)的自動(dòng)id做主鍵的時(shí)候),這個(gè)類通常包括一個(gè)描述該表的ContentURI對象和形如 public static final TITLE = “title”這樣的column到類數(shù)據(jù)的對應(yīng)。從改變上角度來看,你可以修改column的名字而不需要更改用戶上層代碼,增加了靈活性。insert方法如果成功會(huì)返回一個(gè)uri,該uri會(huì)在原有的uri基礎(chǔ)上增加有一個(gè)row id。對于為什么使用row id而不是key id我想破了腦袋。到最后,我發(fā)現(xiàn)我傻了,因?yàn)镃ontentProvider不一定需要使用數(shù)據(jù)庫,使用數(shù)據(jù)庫對應(yīng)的表也可以沒有主鍵,只有row id,才能在任何底層介質(zhì)下做索引標(biāo)識(shí)。

      但,基于row id在刪除和修改操作是會(huì)造成一定的混亂。刪除和修改操作類似。刪除操作需要傳入一個(gè)uri,一個(gè)where字串,一組where的參數(shù)(做條件判定...),而修改操作會(huì)多一個(gè)ContentValues做更新值。著兩個(gè)操作的uri都支持在末尾添加一個(gè)row id。于是混亂就出現(xiàn)了。當(dāng)在where參數(shù)中指明了key id,而在uri中提供了row id,并且row id和key id所指函數(shù)不一致的時(shí)候,你聽誰的?示例代碼中的做法是完全無視r(shí)ow id(無語...),如此野蠻的方式我估計(jì)也只能在示例中出現(xiàn),在實(shí)際中該如何用,恩,我也不知道。幸運(yùn)的是,我看了下上層對 ContentProvider的刪除操作,其實(shí)都不會(huì)直接進(jìn)行,而是通過調(diào)用Cursor的delete方法進(jìn)行,在這前提下,我想Cursor會(huì)處理好這些東西吧。

      最后一個(gè)操作是查詢操作,可以想見,查詢的參數(shù)是最多的,包括uri和一組條件參數(shù)。條件參數(shù)類型和標(biāo)準(zhǔn)的sql類似,包括 sort, projection 之類的。從這些參數(shù)到sql語句的生成,可以尋求QueryBuilder類的幫助,它提供了一組操作接口,簡化了參數(shù)到sql的生成工作,哪怕你不懂 sql都完全沒有問題(這話說的我自己都覺得有點(diǎn)懸...)。查詢返回一個(gè)Cursor。Cursor是一個(gè)支持隨機(jī)讀寫的指針,不僅如此,它還提供了方便的刪除和修改的API,是上層對ContentProvider進(jìn)行操作一個(gè)重要對象,需要仔細(xì)掌握(Cursor還可以綁定到view上,直接送顯,并與用戶進(jìn)行交互,真是程序越往上,封裝越好,工作越機(jī)械沒有復(fù)雜性了...)。數(shù)據(jù)模型

      在與界面打交道的Cursor、ContentResolver等數(shù)據(jù)操作層中,大量采用觀察者模式建立數(shù)據(jù)層與顯示層的聯(lián)系。一個(gè)顯示層的視圖,可以做成某一種觀察者注冊到Cursor或ContentResolver等數(shù)據(jù)中間層中,在實(shí)現(xiàn)底層ContentProvider中,我們需要特別注意在對數(shù)據(jù)進(jìn)行修改操作(包括增刪改...)后,調(diào)用相應(yīng)類型的notify函數(shù),幫助表層對象進(jìn)行刷新(還有一種刷新方式是從一個(gè)view發(fā)起的)??梢钥吹?Android的整體數(shù)據(jù)顯示框架有點(diǎn)像MVC的方式。Cursor、ContentResolver相當(dāng)于控制層,數(shù)據(jù)層和顯示層的交互通過控制層來掌管,而且控制層很穩(wěn)定不需要特別定制,通常工作只在定制數(shù)據(jù)層和顯示層空間,還是比較方便和清晰的。

      10.學(xué)習(xí)感想

      通過這學(xué)期對安卓的學(xué)習(xí),大概了解了以上一些知識(shí),對安卓有了初步的了解,這幾個(gè)月給我的東西我想用有形的和無形的兩部分概敘,形的當(dāng)然就是技術(shù)水平的長進(jìn),雖然其中肯定有很多的不足,相信慢慢會(huì)體會(huì)到。

      第五篇:智能機(jī)交流會(huì)總結(jié)

      智能機(jī)交流會(huì)總結(jié)

      在領(lǐng)導(dǎo)的指導(dǎo)下,在聯(lián)通直銷人員的積極籌備與準(zhǔn)備下,我們的智能手機(jī)交流會(huì)終于圓滿的落下帷幕。為了這次交流會(huì)能夠圓滿成功的舉行,聯(lián)通直銷成員都是煞費(fèi)苦心,積極的出謀劃策。從交流會(huì)的構(gòu)思、流程…最終到能登“大雅之堂”,都是我們整個(gè)團(tuán)隊(duì)共同努力的結(jié)果。

      在熱烈的交流會(huì)上,智能機(jī)用戶踴躍提問,講師們坦誠回答,并把自己在使用手機(jī)中的“真經(jīng)”毫不保留的傳授給了大家。大家洗耳恭聽,虛心請教,掌聲時(shí)起時(shí)落!整個(gè)交流會(huì)在歡快、愉悅的氣氛中圓滿落幕。本次活動(dòng)的順利進(jìn)行不僅拉近了學(xué)生與聯(lián)通公司之間的距離,更是在一定程度上消除了智能機(jī)用戶心中的的迷茫和對未來的種種擔(dān)憂。

      雖然整活動(dòng)看似沒有什么大漏洞,但是藏在活動(dòng)內(nèi)部的一些小問題,卻是大家有目共睹的,主要存在以下方面的問題:

      1.就活動(dòng)準(zhǔn)備而言,雖說大體沒差錯(cuò),但細(xì)節(jié)方面還是有小的漏洞,例如:人員時(shí)間觀念不是太強(qiáng);就智能機(jī)使用人員,素質(zhì)不是太高,垃圾搞得比較亂,最后會(huì)場不好打掃,下此再辦活動(dòng)可以搞一個(gè)溫馨小提示。

      2.交流會(huì)的流程不是太好,當(dāng)然這也是第一次辦,可以慢慢改進(jìn);我們大家可以集思廣益從學(xué)生角度出發(fā),把以后的交流會(huì)辦的實(shí)用,幽默,通過一些手機(jī)知識(shí)競答等方法,把大家的積極性真正調(diào)動(dòng)起來,讓他們?nèi)谌肫渲小?當(dāng)然自己也有很多問題,會(huì)前準(zhǔn)備的不是很充分,會(huì)中又有些緊張,在下次活動(dòng)中,應(yīng)該把這些東西系統(tǒng)的寫下來,以便做的更好。

      4我們可以創(chuàng)建一個(gè)城建智能機(jī)達(dá)人的群,大家可以在上面上傳些實(shí)用的手機(jī)軟件,歌曲,或自己拍的一些圖片,形成一個(gè)社區(qū),每月會(huì)對上傳優(yōu)質(zhì)文件的同學(xué)實(shí)行抽獎(jiǎng)。

      5在群里面,建一個(gè)找工作的平臺(tái),給大家提供一個(gè)勤工助學(xué)崗位,聯(lián)通公司需要人員時(shí),可以在上面發(fā)帖。

      6我們搞活動(dòng)的時(shí)候可以在上面征策劃,策劃寫的好的有獎(jiǎng)勵(lì)。

      7在每次辦交流會(huì)時(shí)可以把這些東西宣傳給大家??偨Y(jié)經(jīng)驗(yàn),對于不足的地方我們須認(rèn)真反思,以便在下一次活動(dòng)作得更好,讓好的茶泡出更香甜的味道,但總體來說活動(dòng)進(jìn)行的還是很成功。

      下載安卓智能機(jī)考核題目word格式文檔
      下載安卓智能機(jī)考核題目.doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        如何學(xué)習(xí)安卓(精選5篇)

        如何學(xué)習(xí)安卓 想學(xué)編程開發(fā),那要先會(huì)一門編程語言,現(xiàn)在可以試著去學(xué)學(xué)C語言,雖然這個(gè)安卓沾不上邊,但是,C語言的編程思想還是很重要的,學(xué)完了C語言之后,他的語法基本上和所有的編程......

        安卓實(shí)驗(yàn)報(bào)告五篇

        安卓實(shí)驗(yàn)報(bào)告 班級:學(xué)號(hào):姓名:xxxxx 11111111 xxxx 實(shí)驗(yàn)一:Activity生命周期的測試 一:實(shí)驗(yàn)?zāi)康?掌握使用Eclipse開發(fā)Android應(yīng)用開發(fā)程序的方法; 掌握Android虛擬設(shè)備的創(chuàng)建方......

        最佳安卓游戲

        2010 年度最易上癮游戲 年度最易上癮游戲 憤怒的小鳥 Angry Birds 瞄準(zhǔn)射擊 shoot U! 涂鴉切割 Slice It! 碧湖垂釣 Fishin2 Go 涂鴉跳躍 Doodle Jump 重力滾球迷宮 Labyrin......

        安卓 課程學(xué)習(xí)心得

        心得體會(huì) 學(xué)號(hào): 姓名: 班級: 一開始接觸 Android 是從自己的手機(jī)開始的,覺得它很酷,是我喜歡的風(fēng)格,然后我就通過了一些網(wǎng)絡(luò)渠道去了解Android。在選課的時(shí)候發(fā)現(xiàn)有這個(gè)課程,于是我......

        安卓實(shí)習(xí)報(bào)告

        通信與電子信息專業(yè)實(shí)訓(xùn)報(bào)告項(xiàng)目名稱:基于android的游戲開發(fā)班 級 10通信1班姓 名學(xué) 號(hào)指導(dǎo)教師 成 績實(shí)訓(xùn)時(shí)間:年月日—目錄 一、實(shí)訓(xùn)目的及其意義 .............................

        安卓手機(jī)培訓(xùn)

        安卓系統(tǒng): 簡介:Android一詞的本義指“機(jī)器人”,同時(shí)也是Google于2007年11月5日宣布的基于Linux平臺(tái)的開源手機(jī)操作系統(tǒng)的名稱,該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組......

        個(gè)人事跡材料-安卓

        個(gè)人事跡材料 我是經(jīng)濟(jì)管理系11級酒店管理的方亮,自入團(tuán)以來積極參加團(tuán)組織的各類活動(dòng)。努力完成團(tuán)組織交給的任務(wù),時(shí)時(shí)刻刻記住我應(yīng)該做什么,如何做好的思想理念。 我深刻認(rèn)......

        安卓課程設(shè)計(jì)報(bào)告

        安 卓 課 程 設(shè) 計(jì) 班 級 09級計(jì)算機(jī)二班 學(xué) 號(hào) 20097923 姓 名 郭丹 目錄 第1章安卓應(yīng)用程序開發(fā)背景 .......................................................... 3 §1......