




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
手機(jī)客戶端改進(jìn)歷程王道新(資深工程師)daoxin.wang@dianping.大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第1頁!大眾點(diǎn)評網(wǎng)概況2003年創(chuàng)建,國內(nèi)領(lǐng)先的城市生活消費(fèi)指南網(wǎng)站覆蓋全國2300多個(gè)城市,近120萬家商戶,2000萬條點(diǎn)評信息活躍用戶超過4200萬,500M(GA)瀏覽量/月70臺主干服務(wù)器,約165位技術(shù)人員大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第2頁!點(diǎn)評手機(jī)App概況2009年10月發(fā)布Android1.0版,2010年01月發(fā)布iPhone1.0版,目前最新版4.62011年08月底手機(jī)獨(dú)立用戶數(shù)已超過1300萬2011年08月底手機(jī)訪問量已超過網(wǎng)站的60%,并且增長速度大于網(wǎng)站大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第3頁!目錄定位服務(wù)網(wǎng)絡(luò)請求本地緩存界面改進(jìn)其他改進(jìn)大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第4頁!定位GPS—衛(wèi)星定位定位準(zhǔn)確度高,速度慢,室內(nèi)無法使用AGPS—手機(jī)基站&WiFi定位定位準(zhǔn)確度稍差,速度快,室內(nèi)可使用Android:國內(nèi)行貨手機(jī)多不包括AGPS定位功能iPhone:Apple基站&WiFi數(shù)據(jù)完備性不及Google,定位效果比Android差獲取手機(jī)周圍基站及WiFi站點(diǎn)信息,調(diào)用Google服務(wù).google./loc/json不能自己通過基站和WiFi站點(diǎn)信息實(shí)現(xiàn)定位,因?yàn)锳pple不允許大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第5頁!地圖坐標(biāo)偏移大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第6頁!其他定位方式NFCQRCode超聲波大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第7頁!網(wǎng)絡(luò)請求連接數(shù)據(jù)網(wǎng)絡(luò)請求協(xié)議大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第8頁!連接AndroidSingleClientConnManagerThreadSafeClientConnManageriOS:自己實(shí)現(xiàn)連接管理大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第9頁!NDK加速數(shù)據(jù)解析MD5,GZip...Crypto(encrypt,decrypt)URLEncoder,URLDecoderDateFormatter.parse()30倍大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第10頁!目錄定位服務(wù)網(wǎng)絡(luò)請求本地緩存界面改進(jìn)其他改進(jìn)大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第11頁!緩存內(nèi)容接口數(shù)據(jù)緩存DISABLED——登陸、注冊、簽到等NORMAL——附近商戶等PERSISTENT——城市列表等圖片緩存內(nèi)存緩存(不要使用SoftReference緩存)磁盤緩存大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第12頁!其他緩存方式Key-ValueDBLevelDB:C++編寫,開源(code.google./p/leveldb/)TreapDB:Java編寫,開源(code.google./p/treapdb/)測試方法Key:40-80字節(jié)的urlValue:4K-32K字節(jié)的隨機(jī)數(shù)據(jù)生成100條key-value,寫入各數(shù)據(jù)庫,再亂序讀100條數(shù)據(jù)。Write(ms/條)Read(ms/條)Sqlite189.724.89LevelDB94.382.51TreapDB8.405.39大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第13頁!內(nèi)存Apk尺寸界面改進(jìn)StrictMode界面改進(jìn)大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第14頁!StrictMode(cont.)自動(dòng)檢測在主線程執(zhí)行的文件讀寫及網(wǎng)絡(luò)IO操作StrictModepolicyviolation;~duration=268ms:android.os.StrictMode$StrictModeDiskWriteViolation:policy=19violation=1
atandroid.os.StrictMode$AndroidBlockGuardPolicy.onWriteToDisk(StrictMode.java:732)
atandroid.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1524)
atandroid.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1426)
at.google.android.apps.analytics.PersistentEventStore.putEvent(UnknownSource)
at.google.android.apps.analytics.GoogleAnalyticsTracker.createEvent(UnknownSource)
at.google.android.apps.analytics.GoogleAnalyticsTracker.trackPageView(UnknownSource)
at.dianping.app.GoogleAnalyticsHandler.handleMessage(GoogleAnalyticsHandler.java:49)
atandroid.os.Handler.dispatchMessage(Handler.java:99)
atandroid.os.Looper.loop(Looper.java:130)
atandroid.app.ActivityThread.main(ActivityThread.java:3683)
atjava.lang.reflect.Method.invokeNative(NativeMethod)
atjava.lang.reflect.Method.invoke(Method.java:507)
at.ernal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at.ernal.os.ZygoteInit.main(ZygoteInit.java:597)
atdalvik.system.NativeStart.main(NativeMethod)大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第15頁!內(nèi)存消除內(nèi)存泄露盡量降低內(nèi)存占用HPROF+EclipseMemoryAnalyzer大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第16頁!內(nèi)存(cont.)包括所有需要的圖片類型,避免系統(tǒng)在小內(nèi)存手機(jī)上選擇大圖片drawabledrawable-ldpidrawable-mdpidrawable-hdpi大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第17頁!目錄定位服務(wù)網(wǎng)絡(luò)請求本地緩存界面改進(jìn)其他改進(jìn)大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第18頁!App功能關(guān)注用戶反饋用戶反饋來源AppStore&AndroidMarket等的用戶評論點(diǎn)評Support論壇App的報(bào)錯(cuò)或建議功能…處理用戶反饋去掉開機(jī)執(zhí)行去掉后臺服務(wù)… 大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第19頁!持續(xù)改進(jìn),打造用戶喜愛的產(chǎn)品大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第20頁!定位服務(wù)地圖顯示定位服務(wù)定位大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第21頁!定位(cont.)定位得到的信息GPS坐標(biāo)定位方式(GPS?基站?WiFi?)定位偏差時(shí)間戳CDMA2000的基站信息不全WiFi信號干擾提示“無法定位”,還是讓用戶覺得定位不準(zhǔn)?用以確定最新的有效定位,但系統(tǒng)返回的時(shí)間戳可能錯(cuò)誤大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第22頁!地圖(cont.)支持在多種地圖中顯示商戶位置GoogleMapBrutBaiduMapMapBarMiniMap自實(shí)現(xiàn)地圖用于未安裝地圖的手機(jī)使用BaiduMap實(shí)現(xiàn)大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第23頁!目錄定位服務(wù)網(wǎng)絡(luò)請求本地緩存界面改進(jìn)其他改進(jìn)大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第24頁!協(xié)議HTTP:服務(wù)器和客戶端都有成熟的支持Server:WebServerAndroid:ApacheHttpClientiOS:UrlRequestAPIRawTCP:可能在數(shù)據(jù)傳輸方面更高效率,需要大量實(shí)現(xiàn)代碼大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第25頁!數(shù)據(jù)數(shù)據(jù)格式XML:庫支持完備,但數(shù)據(jù)有效率不高JSON:使用方便,庫支持完備,但數(shù)據(jù)有效率不高Binary:需要自實(shí)現(xiàn),但數(shù)據(jù)有效率高、安全性高50%大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第26頁!網(wǎng)絡(luò)連接探索保持長連接把多個(gè)請求合并探索替代HTTP的數(shù)據(jù)承載方式大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第27頁!本地緩存緩存方式本地緩存緩存內(nèi)容大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第28頁!緩存方式Key–Value式緩存Key:資源URLValue:資源數(shù)據(jù)SQLiteDB組織和管理方便,但速度慢服務(wù)器接口數(shù)據(jù)采用SQLiteDB方式緩存文件難以管理,速度可能快于SQLiteDB圖片緩存采用文件方式緩存50%大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第29頁!目錄定位服務(wù)網(wǎng)絡(luò)請求本地緩存界面改進(jìn)其他改進(jìn)大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第30頁!StrictMode主線程完成了95%以上的任務(wù)如果UI線程有連續(xù)多次超過100ms的非UI任務(wù)執(zhí)行,用戶就會(huì)覺得UI刷新不及時(shí)大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第31頁!StrictMode(cont.)非UI長操作移至后臺的辦法AsyncTaskHandler/MessageThread大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第32頁!內(nèi)存(cont.)大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏覽的是第33頁!Apk尺寸沒有紋理的背景圖使用.9.png或者xml資源圓角、漸變色、填充多個(gè)類似圖片可拆成背景+前景圖部分資源可安裝之后從網(wǎng)絡(luò)加載如尺寸需求迫切,可分版本發(fā)布大眾點(diǎn)評手機(jī)客戶端的改進(jìn)歷程共37頁,您現(xiàn)在瀏
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度離婚協(xié)議書:子女權(quán)益保障與無財(cái)產(chǎn)分割協(xié)議書咨詢協(xié)議
- 2025年度起重機(jī)械安裝與設(shè)備性能檢測與維護(hù)合同
- 二零二五年度婚嫁房產(chǎn)保障婚前婚后權(quán)益協(xié)議書
- 雙方2025年度海洋資源開發(fā)投資合作協(xié)議書
- 2025年度集體勞動(dòng)技能鑒定與評價(jià)模板合同
- 二零二五年度車輛借出免責(zé)及道路救援服務(wù)合同
- 2025年度高科技企業(yè)員工試用期勞動(dòng)協(xié)議
- 2025年度智能設(shè)備銷售代表勞動(dòng)合同補(bǔ)充協(xié)議
- 個(gè)人信譽(yù)保證協(xié)議
- 2025年度魚塘承包合同書漁業(yè)漁業(yè)品牌建設(shè)與推廣合作協(xié)議
- 法律服務(wù)方案(投標(biāo))
- 轉(zhuǎn)移的危險(xiǎn)廢物性狀清單
- 高中英語-新外研版必修一unit5-The-Monarchs-Journey-公開課reading課件
- 建設(shè)項(xiàng)目用地預(yù)審與選址意見課件講解
- 四年級公共安全教育全冊教案(海峽教育出版社)
- 工程結(jié)構(gòu)通用規(guī)范
- 《構(gòu)成基礎(chǔ)》PPT課件(190頁P(yáng)PT)
- 四年級道德與法治從中國制造到中國創(chuàng)造
- HONEYWELLDCS操作手冊
- 2021-2022新教科版四年級科學(xué)下冊全一冊全部課件(共24課)
- 3 棄渣場施工方案
評論
0/150
提交評論