天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

關(guān)于做Android+J2ee系統(tǒng)集成開(kāi)發(fā)的一點(diǎn)心得

  前言: 很早以前,就聽(tīng)人說(shuō)過(guò)Android以后會(huì)火起來(lái),作為一個(gè)前瞻性,對(duì)它有所了解會(huì)是一個(gè)轉(zhuǎn)型的好機(jī)會(huì)。Javaweb太成熟飽和了,現(xiàn)在市面上各種Android手機(jī)層出不窮,網(wǎng)上各種Android視頻連續(xù)劇一樣跟進(jìn),安卓一下子成為了熱門(mén)話題,剛開(kāi)始也是出于個(gè)人興趣學(xué)的很hi感覺(jué)挺容易上手的樣子,后來(lái)工作中才發(fā)現(xiàn)問(wèn)題很多也很棘手,慢慢的在糾結(jié)和痛苦中琢磨出了一些經(jīng)驗(yàn)和規(guī)律!

  1. Android作為view層,要實(shí)現(xiàn)和服務(wù)層低耦合,必須使用webservice接口。目前還沒(méi)有十分完善的插件,曾經(jīng)試過(guò)axis的Android包(也是一個(gè)興趣者自己做的),用了之后感覺(jué)非常麻煩,特別是復(fù)雜數(shù)據(jù)類型的傳遞,而且bug也很多,還要改別人源碼,無(wú)疑增加團(tuán)隊(duì)的學(xué)習(xí)成本和開(kāi)發(fā)難度,無(wú)奈之下自己做了。Android端使用Apache的httpclient發(fā)送交互請(qǐng)求,定義好xml接口傳輸數(shù)據(jù),接收也是用dom4j解析,經(jīng)測(cè)試在2.2中dom4j支持性很好,2.1少些解析用法不支持,但大部分能用,說(shuō)到這大家也許懂了。沒(méi)錯(cuò),后端用的是servlet機(jī)制,再利用Java反射根據(jù)xml文件描述動(dòng)態(tài)調(diào)用指定的spring服務(wù)和方法,這些已經(jīng)足夠,而且可以完全按自己的方式做更多靈活的擴(kuò)展.

  2. httpclient確實(shí)是個(gè)好東西,但作為無(wú)狀態(tài)訪問(wèn)協(xié)議,http無(wú)法保存用戶會(huì)話信息。于是翻開(kāi)了axis的源碼發(fā)現(xiàn)它原來(lái)是把用戶的首次訪問(wèn)信息保存至特定文件,而后根據(jù)心跳機(jī)制,定時(shí)做校驗(yàn),茅塞頓開(kāi),于是我把用戶首次訪問(wèn)信息保存在數(shù)據(jù)庫(kù)會(huì)話表中,并且寫(xiě)了一個(gè)存儲(chǔ)過(guò)程,定時(shí)把會(huì)話中登錄時(shí)間距離當(dāng)前時(shí)間超過(guò)30分鐘的記錄做刪除操作,用戶每次登錄都與會(huì)話表進(jìn)行匹配,沒(méi)有記錄即刻超時(shí)強(qiáng)退。這么一來(lái),方便簡(jiǎn)單多了,那么用戶每次訪問(wèn)系統(tǒng)都得在xml文件里帶著系統(tǒng)給它的串號(hào),也就是sessionid,才叫一次完整的會(huì)話.

  3. Android系統(tǒng)畫(huà)圖是個(gè)麻煩的活,初期我們小組找遍了所有畫(huà)圖的插件,都是憂喜過(guò)半,沒(méi)有辦法找到特別滿意的,要么是使用太麻煩,要么是找不到我們要的效果,研究的很累也沒(méi)頭緒。問(wèn)了一些原先做過(guò)j2me老程序員,他們建議如果不是專業(yè)做游戲的話,統(tǒng)計(jì)圖表這些還是借助服務(wù)端來(lái)做更合適一點(diǎn),于是我們拋棄了所有的Android端畫(huà)圖插件,采用jfreechart在服務(wù)端畫(huà)好,圖片http流到手機(jī)端顯示,當(dāng)然因?yàn)?.1系統(tǒng)不支持flash,也就沒(méi)考慮在做得更漂亮,圖表很直觀很清晰。

  4. UI是個(gè)難點(diǎn),而且為了適應(yīng)不同分辨率,之前用px單位很有問(wèn)題,后來(lái)改了dip定位,好了許多,之后大面積使用選項(xiàng)卡樣式,統(tǒng)一風(fēng)格,難點(diǎn)很多,比如給tabhost加樣式動(dòng)態(tài)改變效果,按鈕透明,listview去橫線加箭標(biāo)加動(dòng)態(tài)發(fā)亮加下拉翻頁(yè),還有手勢(shì)滑動(dòng),各種各樣的widget特效和動(dòng)畫(huà)切屏。為了省去彎路,我們反編譯了QQ,飛信,58,趕集,飛機(jī)票,墨跡天氣等所有主流的Android布局和美化的用法,吸取不少有用的經(jīng)驗(yàn),但是依然感覺(jué)布局很難做,美工無(wú)法直接介入而且模擬器測(cè)試很不給力,沒(méi)辦法只能用真機(jī)測(cè)ui,速度能快上許多。

  5. Android的客戶端更新功能,相信只有做過(guò)的才知道其中的辛酸,一要做好斷點(diǎn)續(xù)傳,二要做好數(shù)據(jù)庫(kù)的初始化工作,三要做好簽名,四要做好版本校驗(yàn)的算法并且能顯示動(dòng)態(tài)進(jìn)度條和百分比。斷點(diǎn)續(xù)傳好做,但是數(shù)據(jù)庫(kù)初始化麻煩點(diǎn),我們的做法是把sqlite庫(kù)文件直接從raw下拷貝至sd卡中,并設(shè)置了sqlite的讀取庫(kù)路徑指向它,感覺(jué)這樣好一點(diǎn)。簽名一開(kāi)始不知道,每次覆蓋都提示安裝未完成,后來(lái)才明白為了保證應(yīng)用的唯一性,它就像是身份證一樣,其他沒(méi)什么作用,和塞班的簽名不是一回事,封裝apk必須保證在同一簽名文件下才可相互覆蓋安裝!

  6. webview中可以調(diào)用后端的Java代碼,類似dwr功能,不過(guò)這個(gè)功能一直用的很少,很不穩(wěn)定,兼容性要考量,Android既然提供了那么多的ui控件,就說(shuō)明webview是無(wú)法替代它的,畢竟還需要調(diào)用底層服務(wù),webview還是慎用的好。

  7. Android也應(yīng)該遵循mvc的編程規(guī)范,activity只負(fù)責(zé)處理跳轉(zhuǎn),UI,和簡(jiǎn)單數(shù)據(jù)校驗(yàn)工作,業(yè)務(wù)邏輯放置在service類中,sqlite操作稍加封裝下,做個(gè)類似jdbcUtil的那種模板類,提供增刪改查,分頁(yè)等方法,這樣dao操作就完善許多。我想作為Java程序員轉(zhuǎn)做Android開(kāi)發(fā),最大的障礙不在框架也不在谷歌sdk中的那些api,而是Java基礎(chǔ)。通過(guò)寫(xiě)程序發(fā)現(xiàn),做手機(jī)開(kāi)發(fā)的程序員,基本素質(zhì)要過(guò)硬,尤其在集合,線程,異常,io,http這些要非常透徹,不然一個(gè)看似很簡(jiǎn)單的功能,可能就會(huì)寫(xiě)的bug百出,甚至效率很低,可讀性差,基本上自己回過(guò)頭都看不懂自己寫(xiě)的是什么,對(duì)接口和抽象類,包括匿名內(nèi)部類的寫(xiě)法也要爐火純青。

  熟悉類包的基本結(jié)構(gòu),及時(shí)對(duì)自己完成的功能做代碼上的優(yōu)化和重構(gòu),讓自己和別人讀起來(lái)像讀詩(shī)歌一樣,清晰優(yōu)美,它不像web框架那么成熟,大家都用ssh,都很有規(guī)范可循,照著畫(huà)一般也看不出個(gè)人功底來(lái)!我想說(shuō)的是想做Android開(kāi)發(fā)的程序員,要特別留意Java基礎(chǔ)!

  8. 另外地圖導(dǎo)航也是一個(gè)亮點(diǎn),現(xiàn)在不管做什么功能都會(huì)用到地圖導(dǎo)航,吃喝玩樂(lè),用戶都想知道在什么地方,目前百度谷歌都推出了Android的地圖接口,我們用的是arcgis,好在api不多應(yīng)用也很簡(jiǎn)單,官方都有現(xiàn)成例子,讓我這個(gè)arcgis是兩把刷子的人都能糊上交差。

  9. 寫(xiě)Android代碼最大的糾結(jié)是測(cè)試找bug,模擬器很慢,不管修改什么地方,都要重編譯部署,ADT插件經(jīng)常發(fā)生debug失效的情況,想加速開(kāi)發(fā),首先要將eclipse自動(dòng)編譯關(guān)掉,把模擬器中沒(méi)用的進(jìn)程殺掉,再把一些沒(méi)用的手機(jī)特效關(guān)掉,模塊化開(kāi)發(fā),這樣便于將整個(gè)方法體切出來(lái)放進(jìn)junit里測(cè)試。有一款叫Youwave_Android模擬器,使用速度非常快,如果實(shí)在沒(méi)有真機(jī)的情況下可以用它來(lái)過(guò)渡下,沒(méi)事還可以多下載些Android軟件,學(xué)習(xí)下別人的系統(tǒng)是怎么做的,至少能提高下UI審美。有人提議在linux平臺(tái)上開(kāi)發(fā),如果從未使用過(guò)最好先別給自己加難度,實(shí)在想試推薦使用ubuntu10中文桌面版,雖然速度上是沒(méi)感覺(jué)到快多少,但是確是個(gè)逐步鍛煉提升自己的好機(jī)會(huì),技多不壓身!

  10. 有些小技巧是挺實(shí)用的,一些adb命令肯定要比用adt插件要快,新版的sdk升級(jí)包把它放在了platform-tools目錄下;模擬器橫豎切屏有快捷鍵ctrl+F11或者小鍵盤(pán)home;如果你debug失靈了嘗試在DDMS里把進(jìn)程殺掉部署重試,如果還不行就只有重啟模擬器了;如果突然發(fā)現(xiàn)gen目錄下怎么也不生成R.Java文件了,那就show problems看看工程是不是有error,一般不是包路徑有問(wèn)題就是程序內(nèi)部布局文件有錯(cuò)誤,如果仍然無(wú)效,關(guān)閉eclipse重新打開(kāi)就好了,有時(shí)候adt就會(huì)出現(xiàn)這樣的bug。

  adt插件和sdk升級(jí)包是有版本依賴的,如果使用的是8.0以上的adt插件,記住的sdk升級(jí)包一定用最新的,否則會(huì)報(bào)找不到adb命令的錯(cuò)誤。不要茫然就升級(jí)插件,最新10的插件只能在3.5以上的eclipse上運(yùn)行,而且它并沒(méi)有帶來(lái)多大驚喜,只是支持更高sdk版本罷了;Android程序本身也有缺陷,千萬(wàn)不要鉆太深和它較勁,走不過(guò)去的地方就想其他路繞,只要簡(jiǎn)約樸實(shí)不俗套,程序功能健壯就可以;另外多加幾個(gè)Android開(kāi)發(fā)者論壇社區(qū)下源碼發(fā)帖求助,技術(shù)這東西,無(wú)他,唯手熟爾!

  最后這里附上真機(jī)配置安裝說(shuō)明,我用的是魅9,其他品牌手機(jī)也應(yīng)該都有,好處不多說(shuō),自己看!

  安卓雖然目前很熱,但聽(tīng)說(shuō)linux社區(qū)管理員將谷歌Android源碼刪除,并說(shuō)它并非完全真開(kāi)源,有欺騙利用開(kāi)源社區(qū)的嫌疑,如果真的是這樣,那么安卓將失去了很多開(kāi)發(fā)者的信任和支持,總之不是很好的結(jié)果,真心希望下次谷歌百度的時(shí)候看到的不是一大堆copy粘貼來(lái)的hello world例子,而是實(shí)實(shí)在在的開(kāi)發(fā)者之間共享和傳遞的經(jīng)驗(yàn),所以開(kāi)源才是硬道理!

it知識(shí)庫(kù)關(guān)于做Android+J2ee系統(tǒng)集成開(kāi)發(fā)的一點(diǎn)心得,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 日韩欧无码一区二区三区免费不卡 | SAO货腿张开JI巴CAO死我 | 久久精品国产免费播高清无卡 | 131美女爱做视频午夜剧场 | 中文字幕无码亚洲字幕成A人蜜桃 | 日韩免费一区二区三区在线 | 一色屋精品亚洲香蕉网站 | 美女白虎穴| 思思99热久久精品在线6 | 国产成人久久AV免费看澳门 | 国产精品单位女同事在线 | 免费久久狼人香蕉网 | 老湿影院色情a | 富婆找黑人老外泻火在线播放 | 免费精品国偷自产在线 | 九九久久国产 | 猫咪av永久最新域名 | 国产精品系列在线一区 | 国产99久久亚洲综合精品西瓜tv | 伊人久久影院 | 国产午夜三区视频在线 | 大中国免费视频大全在线观看 | 国产欧美一本道无码 | 99热这里只有精品88 | 在线观看国产精选免费 | 成人毛片手机版免费看 | 荷兰少归BVBV | 某上海少妇3P黑人完整版BD | 成 人 免费 黄 色 网站无毒下载 | 97影院理论午夜伦不卡偷 | 印度人XXx| 日韩黄色软件 | 美女脱内衣裸身尿口露出来 | 亚洲精品久久午夜麻豆 | 美女与男人对肌免费网站 | 年轻老师毛茸茸自由性 | 国产1769一七六九视频在线 | 午夜福利32集云播 | 欧美成人性色生活18黑人 | 秋霞特色大片18岁入口 | 99精品成人无码A片观看金桔 |