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

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

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

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

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

      Android日常開(kāi)發(fā)總結(jié)的技術(shù)經(jīng)驗(yàn)60條

      時(shí)間:2019-05-13 17:43:29下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫(kù)小編為你整理了多篇相關(guān)的《Android日常開(kāi)發(fā)總結(jié)的技術(shù)經(jīng)驗(yàn)60條》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫(kù)還可以找到更多《Android日常開(kāi)發(fā)總結(jié)的技術(shù)經(jīng)驗(yàn)60條》。

      第一篇:Android日常開(kāi)發(fā)總結(jié)的技術(shù)經(jīng)驗(yàn)60條

      Android日常開(kāi)發(fā)總結(jié)的技術(shù)經(jīng)驗(yàn)60條

      存在多個(gè)不同的dbhelper實(shí)例情況下,sqlitedatabase對(duì)象必然存在不同的實(shí)例,多線程同時(shí)寫入數(shù)據(jù),輪流寫入數(shù)據(jù)時(shí)會(huì)不定時(shí)的報(bào)db is locked,引起崩潰,不管是操作同張表還是異表。讀和寫可以同時(shí)并發(fā),輪流無(wú)規(guī)律的交替執(zhí)行。同時(shí)寫入數(shù)據(jù)時(shí)解決方案是用并發(fā)的每個(gè)線程都用事務(wù),db則不會(huì)lock,按次整體寫入。

      作者:佚名來(lái)源:安卓開(kāi)發(fā)精選|2017-01-10 19:06 收藏 分享

      1.全部Activity可繼承自BaseActivity,便于統(tǒng)一風(fēng)格與處理公共事件,構(gòu)建對(duì)話框統(tǒng)一構(gòu)建器的建立,萬(wàn)一需要整體變動(dòng),一處修改到處有效。

      2.數(shù)據(jù)庫(kù)表段字段常量和SQL邏輯分離,更清晰,建議使用Lite系列框架LiteOrm庫(kù),超級(jí)清晰且重心可以放在業(yè)務(wù)上不用關(guān)心數(shù)據(jù)庫(kù)細(xì)節(jié)。

      3.全局變量放全局類中,模塊私有放自己的管理類中,讓常量清晰且集中.4.不要相信龐大的管理類的東西會(huì)帶來(lái)什么好處,可能是一場(chǎng)災(zāi)難,而要時(shí)刻注意單一職責(zé)原則,一個(gè)類專心做好一件事情更為清晰。

      5.如果數(shù)據(jù)沒(méi)有必要加載,數(shù)據(jù)請(qǐng)務(wù)必延遲初始化,謹(jǐn)記為用戶節(jié)省內(nèi)存,總不會(huì)有壞處。

      6.異常拋出,在合適的位置處理或者集中處理,不要搞的到處是catch,混亂且性能低,盡量不要在循環(huán)體中捕獲異常,以提升性能。7.地址引用鏈長(zhǎng)時(shí)(3個(gè)以上指向)小心內(nèi)存泄漏,和警惕堆棧地址指向,典型的易發(fā)事件是:數(shù)據(jù)更新了,ListView視圖卻沒(méi)有刷新,這時(shí)Adapter很可能指向并的并不是你更新的數(shù)據(jù)容器地址(一般為L(zhǎng)ist)。

      8.信息同步:不管是數(shù)據(jù)庫(kù)還是網(wǎng)網(wǎng)絡(luò)操作,新插入的數(shù)據(jù)注意返回ID(如果沒(méi)有賦予唯一ID),否則相當(dāng)于沒(méi)有同步。

      9.多線程操作數(shù)據(jù)庫(kù)時(shí),db關(guān)閉了會(huì)報(bào)錯(cuò),也很可能出現(xiàn)互鎖的問(wèn)題,推薦使用事務(wù),推薦使用自動(dòng)化的LiteOrm庫(kù)操作。

      10.做之前先考慮那些可以公用,資源,layout,類,做一個(gè)結(jié)構(gòu)、架構(gòu)分析以加快開(kāi)發(fā),提升代碼可復(fù)用度。

      11.有序隊(duì)列操作add、delete操作時(shí)注意保持排序,否則你會(huì)比較難堪喔。12.數(shù)據(jù)庫(kù)刪除數(shù)據(jù)時(shí),要注意級(jí)聯(lián)操作避免出現(xiàn)永遠(yuǎn)刪不掉的臟數(shù)據(jù)喔。13.關(guān)于形參實(shí)參:調(diào)用函數(shù)時(shí)參數(shù)為基本類型傳的是值,即傳值;參數(shù)為對(duì)象傳遞的是引用,即傳址。

      14.listview在數(shù)據(jù)未滿一屏?xí)r,setSelection函數(shù)不起作用;ListView批量操作時(shí)各子項(xiàng)和視圖正確對(duì)應(yīng),可見(jiàn)即所選??刂艫ctivity的代碼量,保持主要邏輯清晰。其他類遵守SRP(單一職能),ISP(接口隔離)原則。

      16.arraylist執(zhí)行remove時(shí)注意移除int和Integer的區(qū)別。你懂得。

      17.Log請(qǐng)打上Tag,調(diào)試打印一定要做標(biāo)記,能定位打印位置,否則尷尬是:不知道是哪里在打印。

      18.碼塊/常量/資源可以集中公用的一定共用,即使共用邏輯稍復(fù)雜一點(diǎn)也會(huì)值得,修改起來(lái)很輕松,修改一種,到處有效。

      19.setSelection不起作用,嘗試smoothScrollToPosition。ListView的LastVisiblePosition(最后一個(gè)可見(jiàn)子項(xiàng))會(huì)隨著getView方法執(zhí)行位置不同變動(dòng)而變。

      20.與Activity通訊使用Handler更方便;如果你的框架回調(diào)鏈變長(zhǎng),考慮監(jiān)聽(tīng)者模式簡(jiǎn)化回調(diào)。

      21.監(jiān)聽(tīng)者模式不方便使用時(shí),推薦EventBus框架庫(kù),使用時(shí)間總線,沒(méi)接觸過(guò)的同學(xué)可以自行腦補(bǔ)一下哦。

      22.Handler在子線程線程使用Looper.prepare,或者new的時(shí)候給構(gòu)造函數(shù)傳入MainLooper來(lái)確保在主線程run。23.timepicker 點(diǎn)擊確定后需要clearFocus才能獲取手動(dòng)輸入的時(shí)間。

      24.構(gòu)造函數(shù)里面極度不推薦啟動(dòng)異步線程,會(huì)埋下隱患。比如:異步線程調(diào)用了本例的示例,就會(huì)悲劇等著崩潰吧。

      25.千萬(wàn)不要理所當(dāng)然的以為一個(gè)對(duì)象不會(huì)為空,充分的做好容錯(cuò)處理;另外注意null也可以插入ArrayList等容器中。

      26.ExpandableListView的子列表不能點(diǎn)擊(禁用)要把Adapter的isChildSelectable方法返回true。

      27.UI顯示注意內(nèi)容過(guò)長(zhǎng)的情形要提前使用ScrollView否則在小手機(jī)上尷尬你懂得。

      28.注意按鈕的感應(yīng)范圍不小于9mm否則不易點(diǎn)擊;輸入框注意光標(biāo)的位置更易用戶輸入。

      29.服務(wù)器和客戶端盡量統(tǒng)一唯一標(biāo)識(shí)(有可能是ID),否則多少會(huì)有歧義和問(wèn)題。30.注釋,盡量去寫足夠的注釋,去描述一下思路,達(dá)到看了可以明白某一塊代碼的效果。

      31.完整型數(shù)據(jù)一定要用Sqlite的Transaction,大數(shù)據(jù)一定要用。粗略測(cè)試插入100個(gè)數(shù)據(jù)有20倍的提速,插入1000個(gè)數(shù)據(jù)就有100多倍的提速。

      32.避免String=”null”的情況出現(xiàn)String = null,=””都可以。避免出現(xiàn)title=”無(wú)主題”這樣的數(shù)據(jù)提交到數(shù)據(jù)庫(kù)浪費(fèi)空間。

      33.存在多個(gè)不同的dbhelper實(shí)例情況下,sqlitedatabase對(duì)象必然存在不同的實(shí)例,多線程同時(shí)寫入數(shù)據(jù),輪流寫入數(shù)據(jù)時(shí)會(huì)不定時(shí)的報(bào)db is locked,引起崩潰,不管是操作同張表還是異表。讀和寫可以同時(shí)并發(fā),輪流無(wú)規(guī)律的交替執(zhí)行。同時(shí)寫入數(shù)據(jù)時(shí)解決方案是用并發(fā)的每個(gè)線程都用事務(wù),db則不會(huì)lock,按次整體寫入。

      34.建議整個(gè)應(yīng)用維護(hù)一個(gè)dbhelper實(shí)例,只要db沒(méi)有關(guān)閉,全局就只有一個(gè)db實(shí)例,多線程并發(fā)寫入db不會(huì)lock,嚴(yán)格交替進(jìn)行寫入:123123123。。(123代表不同線程,輪流插入一個(gè)記錄),讀和寫均不會(huì)鎖住db,讀寫交替并沒(méi)有規(guī)律,執(zhí)行次數(shù)和程度看cpu分配給哪個(gè)線程的時(shí)間片長(zhǎng)。

      35.一個(gè)任務(wù)使用事務(wù)嵌套N個(gè)事務(wù),N個(gè)事務(wù)中有一個(gè)失敗,這個(gè)任務(wù)整體失敗,全部成功后,數(shù)據(jù)才寫入,具有安全性,整體性。并且事務(wù)寫入大批量數(shù)據(jù)的效率經(jīng)實(shí)際測(cè)試成百上千倍的高于一般的單個(gè)寫入。數(shù)據(jù)庫(kù)大量數(shù)據(jù)、多線程操作建議使用LiteOrm數(shù)據(jù)庫(kù)框架,更穩(wěn)定簡(jiǎn)單。36.經(jīng)常需要用ListView或者其它顯示大量Items的控件實(shí)時(shí)跟蹤或者查看信息,并且希望最新的條目可以自動(dòng)滾動(dòng)到可視范圍內(nèi)。通過(guò)設(shè)置的控件transcriptMode屬性可以將Android平臺(tái)的控件(支持ScrollBar)自動(dòng)滑動(dòng)到最底部。37.Long a;判斷a有沒(méi)有賦值,if(a == 0)在a沒(méi)有賦值情況下會(huì)報(bào)錯(cuò)。應(yīng)該if(a == null),Integer、Floag等也一樣,原因你懂,只是提醒你要小心喔。

      38.編碼遇到讀寫、出入等邏輯要雙向考慮,文件導(dǎo)入導(dǎo)出,字符字節(jié)相互轉(zhuǎn)換都要兩邊轉(zhuǎn)碼。

      39.一個(gè) int 值與一個(gè) Integer 對(duì)象(能包含 int 值的最小對(duì)象)的大小比率約為 1:4(32位和64位機(jī)器有不同)。額外的開(kāi)銷源于 JVM 用于描述 Java 對(duì)象的元數(shù)據(jù)也就是 Integer,(Long、Double等也是)。

      40.對(duì)象由元數(shù)據(jù)和數(shù)據(jù)組成。元數(shù)據(jù)包括類(指向類的指針,描述了類的類型),標(biāo)記(描述了對(duì)象狀態(tài),如散列碼、形狀等),鎖(對(duì)象同步信息)。數(shù)組對(duì)象還包括大小的元數(shù)據(jù)。

      41.一個(gè)在 32 位 Java 運(yùn)行時(shí)中使用 1GB Java 堆的 Java 應(yīng)用程序在遷移到 64 位 Java 運(yùn)行時(shí)之后,通常需要使用 1.7GB 的 Java 堆。

      42.Hash 集合的訪問(wèn)性能比任何 List 的性能都要高,但每條目的成本也要更高。由于訪問(wèn)性能方面的原因,如果您正在創(chuàng)建大集合(例如,用于實(shí)現(xiàn)緩存),那么最好使用基于 Hash 的集合,而不必考慮額外的開(kāi)銷。

      43.對(duì)于并不那么注重訪問(wèn)性能的較小集合而言,List 則是合理的選擇。ArrayList 和 LinkedList 集合的性能大體相同,但其內(nèi)存占用完全不同:ArrayList 的每條目大小要比 LinkedList 小得多,但它不是準(zhǔn)確設(shè)置大小的。List 要使用的正確實(shí)現(xiàn)是 ArrayList 還是 LinkedList 取決于 List 長(zhǎng)度的可預(yù)測(cè)性。如果長(zhǎng)度未知,那么正確的選擇可能是 LinkedList,因?yàn)榧习目瞻卓臻g更少。如果大小已知或可預(yù)知或比較小,那么 ArrayList 的內(nèi)存開(kāi)銷會(huì)更低一些。43.選擇正確的集合類型使你能夠在集合性能與內(nèi)存占用之間達(dá)到合理的平衡。除此之外,你可以通過(guò)正確調(diào)整集合大小來(lái)最大化填充率、最小化未得到利用的空間,從而最大限度地減少內(nèi)存占用。

      44.充分利用封裝(提供接口類來(lái)控制訪問(wèn)數(shù)據(jù))和委托(helper對(duì)象來(lái)實(shí)施任務(wù))兩種理念。45.延遲分配 Hashtable:如果 Hashtable 為空是經(jīng)常發(fā)生的普遍現(xiàn)象,那么僅在存在需要存儲(chǔ)的數(shù)據(jù)時(shí)分配 Hashtable 應(yīng)該是一種合理的做法。將 Hashtable 分配為準(zhǔn)確的大?。弘m然會(huì)有默認(rèn)大小,但建議使用更為準(zhǔn)確的初始大小。46.EditText在setText時(shí)不要忘記是否需要setSelection。在大多數(shù)情況下是需要設(shè)置的。

      47.XML兩種情況要注意:1 屬性名字時(shí)候有重復(fù);2 注意文本是否包含非法字符,注意使用CDATA包裹。

      48.當(dāng)邏輯沒(méi)有明顯問(wèn)題時(shí)考慮對(duì)象屬性、函數(shù)參數(shù)、網(wǎng)絡(luò)傳輸參數(shù)是否全部了解,是否設(shè)置正確。

      49.當(dāng)出現(xiàn)編譯或者運(yùn)行時(shí)錯(cuò)誤,別人那沒(méi)問(wèn)題時(shí),考慮你的編譯環(huán)境和環(huán)境版本是否有問(wèn)題。

      50.由于String類的immutable性質(zhì),當(dāng)String變量需要經(jīng)常變換其值時(shí),應(yīng)該考慮使用StringBuilder提升性能,多線程使用StringBuffer操作string提高程序效率。

      51.java 棧的優(yōu)勢(shì)是比堆速度快,可共享,主要存放臨時(shí)變量、參數(shù)等,堆的優(yōu)勢(shì)是可動(dòng)態(tài)分配內(nèi)存大小。

      52.只要是用new()來(lái)新建對(duì)象的,都會(huì)在堆中創(chuàng)建,而且其數(shù)據(jù)是單獨(dú)存值的,即使與棧中的數(shù)據(jù)(值)相同,也不會(huì)與棧中的數(shù)據(jù)共享。

      53.基本數(shù)據(jù)類型定義的變量稱自動(dòng)變量,存的是‘字面值’,存在于棧中,可共享(存在即不新建)。

      54.多個(gè)RandomAccessFile對(duì)象指向同一個(gè)文件,可使用多個(gè)線程一起寫入無(wú)需再自己加鎖,經(jīng)試驗(yàn)結(jié)論:三個(gè)線程分別寫入100萬(wàn)次數(shù)據(jù),使用鎖約12秒,不使用約8.5秒。100個(gè)線程分別寫入1萬(wàn)次數(shù)據(jù)使用鎖耗時(shí)約4.2秒,不使用鎖耗時(shí)約3秒。

      55.XmlPullParser解析慎用nextText()方法,xml比較復(fù)雜,含有空標(biāo)簽、重復(fù)名字標(biāo)簽時(shí)容易出現(xiàn)異常問(wèn)題;TEXT中使用getText()方法代替START_TAG中使用nextText()方法;START_TAG,TEXT,END_TAG三個(gè)事件配合使用。注意每個(gè)xml節(jié)點(diǎn)之間(不管是開(kāi)始節(jié)點(diǎn)還是結(jié)束節(jié)點(diǎn))都會(huì)出現(xiàn)TEXT事件。

      56.改變邏輯的時(shí)候考慮全部用到這項(xiàng)功能的地方,分散的地方多了,容易大意。57.當(dāng)系統(tǒng)原生組件出現(xiàn)問(wèn)題時(shí),查看錯(cuò)誤棧信息,自己寫一個(gè)該組件的子類,并在合適的地方將出錯(cuò)方法復(fù)寫一下,加上try catch保證不崩潰掉。不要擾亂了該系統(tǒng)控件的正常邏輯。

      58.輸入控件注意對(duì)空格、換行等符號(hào)的控制;輸入框里內(nèi)容注意和左右控件的空間,防止誤點(diǎn)擊。

      59.注意函數(shù)參數(shù)里的++或者–操作。是++c 還是 c++,區(qū)別很大。

      60.各種地方、永遠(yuǎn)的不要小看null指針問(wèn)題,甚至有些場(chǎng)合寧可錯(cuò)殺(try catch),不可放過(guò)。

      【編輯推薦】

      1.Android快速實(shí)現(xiàn)微信支付

      2.Android嵌套滑動(dòng)機(jī)制NestedScrolling 3.我的Android開(kāi)發(fā)實(shí)戰(zhàn)經(jīng)驗(yàn)總結(jié)

      4.用Jenkins自動(dòng)化構(gòu)建Android和iOS應(yīng)用 5.Android輕松實(shí)現(xiàn)RecyclerView懸浮條

      第二篇:Android高級(jí)開(kāi)發(fā)技術(shù)教學(xué)大綱

      《Android高級(jí)開(kāi)發(fā)技術(shù)》課程教學(xué)大綱

      課程名稱(中文):Android高級(jí)開(kāi)發(fā)技術(shù)

      課程名稱(英文):Advanced Android Development Technology 適用專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)、軟件工程、網(wǎng)絡(luò)工程 課程類別及課程模塊:學(xué)科專業(yè)課程/特色創(chuàng)新課程 課程編碼:11A023 學(xué)分/開(kāi)課學(xué)期和周學(xué)時(shí)/學(xué)時(shí)類型/折算后總學(xué)時(shí):

      學(xué)分:

      開(kāi)課學(xué)期: 6

      周學(xué)時(shí):2+2 學(xué)時(shí)類型: 理論+實(shí)踐

      折算后總學(xué)時(shí):64 教材名稱及作者、出版社、出版時(shí)間、版次:《第一行代碼Android第2版》,郭霖,北京:人民郵電出版社, 2016 大綱主筆人:樊相奎 大綱審定人:李貴洋

      一、課程的目的、要求和任務(wù)

      近幾年移動(dòng)終端的開(kāi)發(fā)發(fā)展迅速,相關(guān)公司越來(lái)越多,隨著時(shí)間的推移,預(yù)計(jì)社會(huì)對(duì)移動(dòng)終端開(kāi)發(fā)領(lǐng)域人才的需求量也會(huì)迅速增多。據(jù)悉,在成都的軟件開(kāi)發(fā)企業(yè)中,有多數(shù)企業(yè)都或多或少涉及移動(dòng)終端開(kāi)發(fā)領(lǐng)域。對(duì)于移動(dòng)終端開(kāi)發(fā)平臺(tái),目前市場(chǎng)占有率最高,未來(lái)發(fā)展最有希望是iOS和Andriod開(kāi)發(fā)平臺(tái)。其中Andriod由具有極度創(chuàng)新能力的Google公司開(kāi)發(fā),同時(shí)Andriod采用開(kāi)源方式,引入了大量合作開(kāi)發(fā)伙伴,目前全世界有大量的公司采用Andriod作為移動(dòng)終端開(kāi)發(fā)平臺(tái),包括三星、華為、小米等。

      開(kāi)設(shè)本課程的目的是使學(xué)生比較全面地了解和掌握移動(dòng)終端設(shè)計(jì)的基本概念、原理及相關(guān)技術(shù),為以后的深入學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。具體要求和任務(wù)是掌握Andriod移動(dòng)終端開(kāi)發(fā)平臺(tái)的具體開(kāi)發(fā)語(yǔ)言、開(kāi)發(fā)工具、調(diào)試方法等相關(guān)技術(shù)。

      二、大綱基本內(nèi)容及學(xué)時(shí)分配

      (一)Android開(kāi)發(fā)起步(2課時(shí))1.2.3.4.5.Android平臺(tái)簡(jiǎn)介、背景介紹和平臺(tái)架構(gòu) Android開(kāi)發(fā)環(huán)境的搭建,相關(guān)軟件的下載與安裝 虛擬設(shè)備的創(chuàng)建和使用 創(chuàng)建“Hello Android” Android應(yīng)用程序的調(diào)試

      說(shuō)明:

      (1)基本要求:介紹Android開(kāi)發(fā)起步的相關(guān)知識(shí),包括 Android平臺(tái)Android的背景及其應(yīng)用程序的框架,通過(guò)讓學(xué)生完成一個(gè)hello world app的開(kāi)發(fā),體驗(yàn)一個(gè)android開(kāi)發(fā)過(guò)程;

      (2)教學(xué)重點(diǎn):Android平臺(tái)Android的背景及其應(yīng)用程序的框架,搭建Android的開(kāi)發(fā)環(huán)境,使用開(kāi)發(fā)平臺(tái)創(chuàng)建Android項(xiàng)目;(3)教學(xué)難點(diǎn):平臺(tái)架構(gòu),Android應(yīng)用程序的調(diào)試;

      (二)Android應(yīng)用程序的構(gòu)成(4課時(shí))

      1.2.3.4.5.6.7.8.Android系統(tǒng)架構(gòu) Activity生命周期 Android界面的布局 服務(wù)—Service 三大組件間通信—Intent AndroidManifest.xml解析 共享數(shù)據(jù)—content Provider 通知用戶—Android Notification

      9.Android應(yīng)用程序的生命周期

      說(shuō)明:

      (1)基本要求:主要對(duì)Android的基本組件及Android應(yīng)用程序的構(gòu)成進(jìn)行介紹,同時(shí)還將對(duì)Android應(yīng)用程序的生命周期進(jìn)行分析,主要目的是讓讀者了解Android應(yīng)用程序的構(gòu)成,掌握Android基本組件的特性及使用方法。(2)教學(xué)重點(diǎn):了解Android應(yīng)用程序的構(gòu)成,掌握Android基本組件的特性及使用方法,Activity以及Intent的概念及使用;

      (3)教學(xué)難點(diǎn):掌握應(yīng)用程序的生命周期以及具體使用場(chǎng)景;

      (三)Android布局管理器(4課時(shí))

      1.2.3.4.5.6.控件類概述,View類簡(jiǎn)介、ViewGroup類簡(jiǎn)介

      線性布局,LinearLayout類簡(jiǎn)介、線性布局案例

      表格布局,TableLayout類簡(jiǎn)介、表格布局案例

      相對(duì)布局,RelativeLayout類簡(jiǎn)介、相對(duì)布局案例

      幀布局,F(xiàn)rameLayout類簡(jiǎn)介、幀布局案例

      絕對(duì)布局,AbsoluteLayout類簡(jiǎn)介、絕對(duì)布局案例

      說(shuō)明:

      (1)基本要求:介紹的內(nèi)容為Android平臺(tái)下的布局管理器。Android中的布局包括線性布局、表格布局、相對(duì)布局、幀布局和絕對(duì)布局,分別對(duì)每個(gè)布局管理器進(jìn)行詳細(xì)的介紹。

      (2)教學(xué)重點(diǎn):了解Android平臺(tái)下的布局管理器及使用方法;(3)教學(xué)難點(diǎn):布局管理器的嵌套使用,如何合理有效的使用嵌套布局;

      (四)Android常用基本控件(2課時(shí))

      1.2.文本控件的介紹,TextView類簡(jiǎn)介、EditText類簡(jiǎn)介以及使用案例

      按鈕控件,Button類簡(jiǎn)介、ImageButton類簡(jiǎn)介、Patch圖片簡(jiǎn)介以及Patch圖片使用案例

      3.4.狀態(tài)開(kāi)關(guān)按鈕,ToggleButton類簡(jiǎn)介以及開(kāi)關(guān)按鈕的使用

      單選按鈕與復(fù)選按鈕,CheckBox和RadioButton類簡(jiǎn)介以及單選按鈕和復(fù)選按鈕使用案

      5.6.圖片控件,ImageView類簡(jiǎn)介以及圖片查看器

      時(shí)鐘控件,AnalogClock和DigitalClock類簡(jiǎn)介以及時(shí)鐘控件使用案例 7.日期與時(shí)間選擇控件,DatePicker類簡(jiǎn)介、TimePicker類簡(jiǎn)介以及日期時(shí)間控件使用案例

      說(shuō)明:

      (1)基本要求:對(duì)進(jìn)行用戶界面開(kāi)發(fā)時(shí)常用到的Android基本控件進(jìn)行介紹,主要包括文本框、按鈕、單選按鈕和復(fù)選按鈕、狀態(tài)開(kāi)關(guān)按鈕和日期時(shí)間控件等,了解這些基本控件的工作方式有助于學(xué)習(xí)后面要介紹的Android中的高級(jí)控件。(2)教學(xué)重點(diǎn):掌握Android基本控件及使用方法;(3)教學(xué)難點(diǎn):不用布局文件,直接代碼生成控件;

      (五)Android常用高級(jí)控件(4課時(shí))

      1.2.3.4.5.6.7.8.自動(dòng)完成文本框,AutoCompleteTextView類簡(jiǎn)介以及自動(dòng)完成文本使用案例

      下拉列表控件,Spinner類簡(jiǎn)介以及下拉列表使用案例

      列表視圖,ListView類簡(jiǎn)介以及列表視圖使用案例

      網(wǎng)格視圖,GridView類簡(jiǎn)介以及網(wǎng)格視圖使用案例

      畫廊控件,Gallery類簡(jiǎn)介以及畫廊控件使用案例

      滾動(dòng)視圖,ScrollView類簡(jiǎn)介以及滾動(dòng)視圖使用案例

      選項(xiàng)卡,TabHost類簡(jiǎn)介以及選項(xiàng)卡使用案例

      滑塊、進(jìn)度條與星級(jí)滑塊,ProgressBar、SeekBar、RatingBar類簡(jiǎn)介以及使用案例

      說(shuō)明:

      (1)基本要求;上一章已經(jīng)介紹了Android中的一些基本控件,本章對(duì)Android中常用的高級(jí)控件逐一進(jìn)行介紹。

      (2)教學(xué)重點(diǎn):掌握Android常用高級(jí)控件及使用方法;(3)教學(xué)難點(diǎn):BaseAdapter適配器的概念以及使用;

      (六)菜單與對(duì)話框(4課時(shí))

      1.菜單功能的開(kāi)發(fā),包括選項(xiàng)菜單和子菜單簡(jiǎn)介、選項(xiàng)菜單和子菜單使用案例、上下文菜單

      2.對(duì)話框功能的開(kāi)發(fā),包括對(duì)話框簡(jiǎn)介、普通對(duì)話框、列表對(duì)話框、單選按鈕對(duì)話框、復(fù)選框?qū)υ捒?、日期及時(shí)間選擇對(duì)話框、進(jìn)度對(duì)話框

      3.消息提示,Toast的使用,Notification的使用

      說(shuō)明:

      (1)基本要求:介紹用戶界面中菜單與對(duì)話框的開(kāi)發(fā),同時(shí)還會(huì)對(duì)Android平臺(tái)下的Toast和Notification進(jìn)行介紹。

      (2)教學(xué)重點(diǎn):掌握Android常用菜單和對(duì)話框的概念和使用;(3)教學(xué)難點(diǎn):Notification的概念和使用;

      (七)Android事件處理模型(2課時(shí))

      1.了解Android中的事件處理概念和模型;基于回調(diào)機(jī)制的事件處理,基于監(jiān)聽(tīng)接口的事件處理。

      2.掌握Android中的事件處理具體方法,包括OnClickListener、OnLongClickListener、OnFocusChangeListener、OnKeyListener、onTouchEvent、OnCheckedChange、OnItemSelected、日期和時(shí)間監(jiān)聽(tīng)事件等;

      3.說(shuō)明:

      (1)基本要求:對(duì)Android平臺(tái)用戶界面的各種事件響應(yīng)進(jìn)行詳細(xì)介紹,加深對(duì)Android平臺(tái)的事件處理模型的理解,熟練掌握控件的各種事件處理方法。

      (2)教學(xué)重點(diǎn):掌握Android中的事件處理概念以及具體的常用事件及其處理方法;(3)教學(xué)難點(diǎn):理解基于回調(diào)機(jī)制和基于監(jiān)聽(tīng)接口事件處理機(jī)理;

      (八)消息廣播與服務(wù)(2課時(shí))

      1.2.BroadcastReceiver組件,BroadcastReceiver類簡(jiǎn)介,基于廣播的案例

      Service組件,Service類簡(jiǎn)介,基于服務(wù)的案例

      說(shuō)明:(1)基本要求:在很多應(yīng)用程序中,都會(huì)通過(guò)廣播形式來(lái)發(fā)送和接收消息,當(dāng)應(yīng)用程序接收到消息后,一般啟動(dòng)一個(gè)Activity或者一個(gè)Service進(jìn)行處理。本章對(duì)服務(wù)組件Service進(jìn)行詳細(xì)介紹,章末通過(guò)對(duì)一個(gè)單機(jī)版的音樂(lè)播放盒的介紹幫助掌握服務(wù)組件的使用方法。

      (2)教學(xué)重點(diǎn):對(duì)Android的消息廣播機(jī)制及服務(wù)組件運(yùn)行機(jī)理和具體使用方法;(3)教學(xué)難點(diǎn):廣播Broadcast、服務(wù)Service的運(yùn)行機(jī)制和處理原理;

      (九)多線程及消息處理(4課時(shí))

      1.2.3.4.Android多線程,概述、創(chuàng)建線程、操作線程 UI線程與非UI線程

      多線程中的常用類,包括Handler類、AsyncTask類、Timer定時(shí)器等 Android多線程通信機(jī)制

      說(shuō)明:

      (1)基本要求:了解線程的概念、生命周期,通過(guò)實(shí)例學(xué)習(xí),掌握多線程的創(chuàng)建、使用以及多種具體事項(xiàng)方式。

      (2)教學(xué)重點(diǎn):對(duì)Android的多線程運(yùn)行機(jī)理和具體使用方法;(3)教學(xué)難點(diǎn):線程同步;

      (十)數(shù)據(jù)處理(4課時(shí))

      1.掌握SharedPreferences的使用方法 2.3.4.5.6.掌握各種文件存儲(chǔ)的區(qū)別與適用情況 了解SQLite數(shù)據(jù)庫(kù)的特點(diǎn)和體系結(jié)構(gòu) 掌握SQLite數(shù)據(jù)庫(kù)的建立和操作方法 理解ContentProvider的用途和原理(選講)掌握ContentProvider的創(chuàng)建與使用方法(選講)

      說(shuō)明:

      (1)基本要求:本章要介紹訪問(wèn)手機(jī)存儲(chǔ)卡的方法及如何在程序中使用SQLite數(shù)據(jù)庫(kù)。(2)教學(xué)重點(diǎn):掌握Android數(shù)據(jù)存儲(chǔ)的相關(guān)機(jī)制和具體使用方法;(3)教學(xué)難點(diǎn):SQLite數(shù)據(jù)庫(kù)的具體使用;

      授課內(nèi)容及學(xué)時(shí)說(shuō)明:前述大綱章節(jié)及學(xué)時(shí)分配是本門課程指導(dǎo)性意見(jiàn),針對(duì)不同專業(yè)學(xué)生以及具體授課情況,授課教師對(duì)具體章節(jié)的內(nèi)容及學(xué)時(shí)可進(jìn)行適當(dāng)調(diào)整,但主要章節(jié)知識(shí)點(diǎn)(除可選部分)需要覆蓋到。

      三、與其他課程的關(guān)系

      1.先行課程:數(shù)據(jù)庫(kù)原理、Java 2.后續(xù)課程:無(wú)

      四、考核方式

      考核形式:考查

      評(píng)分標(biāo)準(zhǔn):平時(shí)成績(jī)占30%(主要考察課堂與上機(jī)考勤、實(shí)驗(yàn)等方面),兩次階段性上機(jī)考試占40%,期末作品占30%。

      五、參考書目

      1.明日科技編著,《Android從入門到精通》,北京:清華大學(xué)出版社, 2016 2.李剛編著,《瘋狂Android講義(第3版)》,北京:電子工業(yè)出版社, 2015 3.(美)Erich Gamma等著,《設(shè)計(jì)模式》,北京:機(jī)械工業(yè)出版社,2013

      第三篇:Android項(xiàng)目開(kāi)發(fā)總結(jié)

      項(xiàng)目開(kāi)發(fā)總結(jié)報(bào)告

      1引言

      1.1編寫目的

      總結(jié)開(kāi)發(fā)經(jīng)驗(yàn)與學(xué)習(xí)中的不足

      1.2背景

      以方便用戶記錄日常學(xué)習(xí)心得,生活體會(huì)為目的,進(jìn)行主題為“隨心筆記”的應(yīng)用開(kāi)發(fā)

      2實(shí)際開(kāi)發(fā)結(jié)果

      2.1產(chǎn)品

      2.2主要功能和性能

      能夠查看筆記的目錄,記錄筆記完成時(shí)間。能夠改變主題顏色,目錄排版方式,擁有簡(jiǎn)潔的主題。對(duì)于涂鴉功能,插入圖片,密碼鎖等功能未能實(shí)現(xiàn)。

      3開(kāi)發(fā)工作評(píng)價(jià)

      3.1對(duì)產(chǎn)品質(zhì)量的評(píng)價(jià)

      本應(yīng)用擁有簡(jiǎn)單實(shí)用的功能,能夠滿足一般用戶的需要

      3.3對(duì)技術(shù)方法的評(píng)價(jià)

      開(kāi)發(fā)中使用了軟件工程中的增量開(kāi)發(fā)模型,黑盒測(cè)試等技術(shù),使開(kāi)發(fā)逐步向前發(fā)展

      3.4出錯(cuò)原因的分析

      對(duì)于部分Android版本支持性不好,不能正常使用安裝等

      4經(jīng)驗(yàn)與教訓(xùn)

      通過(guò)這次開(kāi)發(fā),我們體驗(yàn)了開(kāi)發(fā)不易,需要很多人員的合作。開(kāi)發(fā)過(guò)程中,必須明確整體目標(biāo),不能東一榔頭,西一棒槌。另外由于學(xué)習(xí)時(shí)間短,對(duì)很多東西都不太了解,還好通過(guò)CSDN等一些網(wǎng)站能夠找到有益的幫助,感謝那些博客,論壇。

      第四篇:Android編程開(kāi)發(fā)入門學(xué)習(xí)經(jīng)驗(yàn)

      Android編程開(kāi)發(fā)入門學(xué)習(xí)經(jīng)驗(yàn)

      首先說(shuō)一下,之所以選擇android培訓(xùn),主要有下面幾個(gè)原因:因?yàn)槲也皇怯?jì)算機(jī)專業(yè),一些計(jì)算機(jī)語(yǔ)言高級(jí)的計(jì)算機(jī)語(yǔ)言也沒(méi)學(xué)過(guò),只學(xué)過(guò)c語(yǔ)言,本身想自學(xué),但自學(xué)覺(jué)得效率太低,自己沒(méi)有系統(tǒng)的學(xué)習(xí)方法,考慮到報(bào)班學(xué)習(xí),有個(gè)老師帶著,這樣效果會(huì)好很多,因此決定上個(gè)編程培訓(xùn)班學(xué)習(xí)。

      在看了好多家Android編程開(kāi)發(fā)培訓(xùn)機(jī)構(gòu)的官方介紹后,也在論壇上搜索了一些評(píng)價(jià),之后和咨詢老師進(jìn)行了一些溝通,同時(shí)我還打聽(tīng)到了一些之前畢業(yè)學(xué)員的一些就業(yè)情況。相比同行業(yè)的其他培訓(xùn)機(jī)構(gòu),各方面的反饋都還不錯(cuò),所以我選擇了千鋒android培訓(xùn)。四個(gè)月android學(xué)習(xí)過(guò)去了,老師給我的印象是非常負(fù)責(zé),在課堂上,他們會(huì)一一為同學(xué)答疑解惑,甚至當(dāng)看到你帶有疑惑的眼神,他們也會(huì)問(wèn)下你有沒(méi)有不懂的地方, 這一點(diǎn)我很感動(dòng)。這里的課程安排的很合理,從基礎(chǔ)的java,以及培養(yǎng)面向?qū)ο蟮囊恍┘?xì)節(jié),白天老師講課,晚上自習(xí)有老師輔導(dǎo),一直到Android編程開(kāi)發(fā)最后的大項(xiàng)目,課程都安排的很有層次,深入淺出。

      在學(xué)習(xí)android編程的這段時(shí)間里,我學(xué)到很多之前沒(méi)有接觸到的知識(shí),過(guò)得挺充實(shí)的。這里的授課老師講課方式各有特色,但是課后對(duì)于我們來(lái)說(shuō)都很親切。劉老師講話風(fēng)趣幽默,讓我們?cè)谳p松環(huán)境中掌握java語(yǔ)言基礎(chǔ),課程中,老師更加注重我們對(duì)于代碼的積累,并強(qiáng)調(diào)實(shí)用性,讓我們自己在項(xiàng)目中理解,很多老師都知識(shí)面很廣,親和力又強(qiáng),讓我們能夠在輕松地氛圍中更好地融會(huì)貫通所學(xué)android編程知識(shí)。

      最后,我想對(duì)已經(jīng)或即將在培訓(xùn)中學(xué)習(xí)android編程的學(xué)弟學(xué)妹們說(shuō)幾句,選擇一家好的android編程培訓(xùn)機(jī)構(gòu)固然很重要,但是最終還是得靠自己的努力,如果自己不努力,誰(shuí)都幫不了你,如果,你選擇了像我選擇的這種一流的機(jī)構(gòu),那剩下的就好好努力吧。如果當(dāng)你堅(jiān)持不下去的時(shí)候,那就想想你的夢(mèng)想,你的家人,你今天的努力,不僅僅是為了你自己。相信自己,你一定能成功。

      第五篇:Android開(kāi)發(fā)基本知識(shí)總結(jié)-Android課件

      Android開(kāi)發(fā)基礎(chǔ)教程

      2015-4-13周一2CJ02 目錄

      1.什么是Android? 2.Android應(yīng)用開(kāi)發(fā)環(huán)境 3.Gradle 4.模擬器Emulator 5.開(kāi)發(fā)一個(gè)安卓應(yīng)用程序的步驟 6.關(guān)于多個(gè)模擬器的問(wèn)題 7.安卓工程文件的結(jié)構(gòu) 8.android界面文件---xml文件 9.android程序文件---java文件 10.界面布局方式 11.幾個(gè)常用組件 12.Roast組件 13.對(duì)話框AlertDialog 14.幾條重要的語(yǔ)句 15.監(jiān)聽(tīng)器Listener 16.識(shí)別響應(yīng)事件的組件 17.界面切換

      18.界面之間的數(shù)據(jù)傳遞 19.Activity生命周期 20.多媒體播放

      21.日志文件在程序調(diào)試中的使用 22.使用XML文件保存數(shù)據(jù)

      23.使用TXT文件保存數(shù)據(jù) 24.使用數(shù)據(jù)庫(kù)保存數(shù)據(jù) 25.時(shí)間組件 26.線程Thread 27.視頻播放VideoView 28.MediaPlayer,SurfaceView和SurfaceHolder播放視頻 29.錄制音頻MediaRecorder 30.菜單組件

      1.什么是Android? 移動(dòng)設(shè)備(常常指手機(jī)mobile)的操作系統(tǒng),由google公司出品,是免費(fèi)的, 最早是基于Linux平臺(tái)的;目前已經(jīng)推出的Android3.0是平板電腦上的操作系統(tǒng)。

      其它的手機(jī)操作系統(tǒng)有:iPhone系統(tǒng)等。

      手機(jī)廠商:三星(Samsung,宏達(dá)電(HTC),摩托羅拉(Motorola),華碩,索尼,Garmin等都支持iPhone系統(tǒng)。

      Android系統(tǒng)功能:自定義用戶界面,支持藍(lán)牙,多點(diǎn)觸摸,具有導(dǎo)航功能和語(yǔ)音識(shí)別功能,結(jié)合了google地圖。

      Android軟件開(kāi)發(fā)工具SDK

      4.0。

      Android系統(tǒng)特點(diǎn):虛擬鍵盤,以WebKit為核心的WebView組件,可以使用HTML, javascript等。

      2.Android應(yīng)用開(kāi)發(fā)環(huán)境 Eclipse+ADT+Android SDK。ADT---Android開(kāi)發(fā)工具插件(Android Plugs for Eclipse).開(kāi)發(fā)環(huán)境安裝注意事項(xiàng):關(guān)閉防毒軟件,按順序安裝,保持網(wǎng)絡(luò)暢通,比較耗時(shí)。特別說(shuō)明,安裝和運(yùn)行需要高配置機(jī)器和高速網(wǎng)絡(luò),比較費(fèi)時(shí)。

      (1)安裝Java

      JDK。甲骨文

      網(wǎng)站: http://004km.cn ”);Intent in = new Intent(Intent.ACTIN_VIEW, uri);startActivity(in);(2)調(diào)用系統(tǒng)撥號(hào)界面

      Uri uri = Uri.parse(“tel:*** ”);Intent in = new Intent(Intent.ACTIN_DIAL, uri);startActivity(in);(3)調(diào)用系統(tǒng)撥號(hào)功能

      Uri uri = Uri.parse(“tel:*** ”);Intent in = new Intent(Intent.ACTIN_CALL, uri);startActivity(in);注意:需要在AndroidManifest.xml文件中進(jìn)行設(shè)置,才可以自動(dòng)撥號(hào): 18.界面之間的數(shù)據(jù)傳遞 1.方法1:調(diào)用無(wú)返回參數(shù) 在第一個(gè)界面中: Bundle bundle

      = new Bundle();bndle.pushString(“name”, “David”);bndle.pushInt(“age”, 22);//pushChar, putShort,put Boolean, pushChar等等

      Uri uri = Uri.parse(“http://004km.cn ”);Intent in = new Intent(Intent.ACTIN_VIEW, uri);in.putExtras(bundle);startActivity(in);在第二個(gè)界面中: Intent in = this.get Intent();Bundle bundle

      = in.getExtras();String studentName = bundle.getInt();//getDouble, 2.方法2:調(diào)用有返回參數(shù) 例1,在第一個(gè)界面中: private static final int ACTIVITY_EDIT = 1;Bundle bundle = new Bundle();bundle.pushString(“name”, “David”);Intent in = new Intent();

      getShort, getIntArray等 in.putExtras(bundle);in.setClass(FullscreenActivity.this, SecondActivity.class);startActivityForResult(in, ACTIVITY_EDIT);注意:startActivityForResult后所有語(yǔ)句無(wú)效,不執(zhí)行;在第一個(gè)界面中,第二個(gè)界面可以在不同位置被多次調(diào)用;在第一個(gè)界面中,在其它位置可以調(diào)用其它界面。

      在第一個(gè)界面中,重寫onActivityResult,接收所有被調(diào)用界面返回的參數(shù)(如果有):@Override protected void onActivityResult(int

      requestCode,int resultCode,Intent

      data){ super.onActivityResult(requestCode, resultCode, data);if(requestCode== ACTIVITY_EDIT)

      //此參數(shù)可以區(qū)分不同的調(diào)用

      {

      Bundle bundle = data.getExtras();if(resultCode == RESULT_OK)

      //此參數(shù)可以判斷有無(wú)返回參數(shù)

      {

      Bundle bundle = data.getExtras();……

      } if

      (resultCode == RESULT_CANCELED)

      { } }

      …… } ……

      問(wèn)題

      :如何判斷被調(diào)用界面是否傳遞返回參數(shù)?如何區(qū)分返回參數(shù)是由不同的被調(diào)用界面?zhèn)鬟f的?android的這種解決方法并不是完美的。例2,在第二個(gè)界面中:

      讀取第一個(gè)界面?zhèn)鬟f的參數(shù),省略;下面是向調(diào)用程序傳遞返回參數(shù): Bundle bundle

      = new Bundle();bndle.pushString(“name”, “賀昌峰373780592”);Intent

      setResult(RESULT_CANCELED);//傳遞參數(shù)返回

      // 或setResult(RESULT_OK, in);//不傳遞參數(shù)返回 finish();注意:這時(shí),第二個(gè)界面返回到第一個(gè)界面,可以不傳遞參數(shù)直接返回(RESULT_CANCELED),in = new Intent();

      in.putExtras(bundle);也可以傳遞參數(shù)返回(RESULT_OK)。19.Activity生命周期

      onCreate

      ---onStart

      ---onResume

      ---onPause---onStop

      ---onDestroy 也就是說(shuō),有: protected void oncreate(…){ ….} protected void onStart(…){ ….} protected void onResume(…){ ….} protected void onPause(…){

      ….} protected void onStop(…){ ….} protected

      void onDestroy(…){ ….} 20.多媒體播放MediaPlayer public MediaPlayer player = new MediaPlayer();//生成語(yǔ)句可省略 try{ player.reset();

      //重新播放音樂(lè)

      player.setDataSource(“/sdcard/music/music_file_name.mp3”);

      // player = MediaPlayer.create(getApplicationContext(), R.raw.music);

      // 打開(kāi)音樂(lè)文件

      //music為音樂(lè)資源文件

      player.prepare();player.start();

      // player.isPlaying()

      //準(zhǔn)備播放 //播放音樂(lè)

      //判斷是否正在播放

      //音樂(lè)播放完成觸發(fā)事件

      player.setOnCompletionListener(new OnCompletionListener){ public void onCompletion(){ //音樂(lè)播放完成后,處理代碼 } }

      player.pause();player.start();player.stop();

      } catch(IllegalStateException e){ ……} catch(IOException e){ ……}

      //播放暫停 //繼續(xù)播放音樂(lè) //停止播放音樂(lè) player.release();

      //釋放存儲(chǔ)空間

      //注意:可以播放存儲(chǔ)卡上任意一個(gè)音樂(lè)文件;也可以播放資源列表中的音樂(lè)文件 21.日志文件在程序調(diào)試中的使用

      import android.util.Log;對(duì)應(yīng)的方法有:debug,verbose,info,warn,error。注意,使用簡(jiǎn)寫。問(wèn)題:如何查看系統(tǒng)日志文件?

      Log.d(“這里是分類標(biāo)簽”, “這里是輸出信息”);22.使用XML文件保存數(shù)據(jù)

      對(duì)XML文件進(jìn)行操作,形式為(key,value)。SharedPreferences

      sp = get SharedPreferences(文件名,權(quán)限);

      權(quán)限:MODE_PRIVATE, MODE_WORLD_READABLE, MODE_WORLD_WRITEABLE 例:

      //1打開(kāi)XML文件 SharedPreferences

      //2更改數(shù)據(jù)

      Editor editor = sp.eidt();

      //更改數(shù)據(jù)

      sp = get SharedPreferences(“myconfig”,MODE_PRIVATE);

      editor.putString(“name”, “賀昌峰373780592”);editor.putInt(“age”, 48);editor.putFloat(“salary”, 2048.5);//putLong,putBoolean等;

      editor.commit();

      //保存數(shù)據(jù)

      //3讀取數(shù)據(jù)

      String myname = sp.getString(“name”, “”);

      //4刪除數(shù)據(jù)

      editor.remove(“name”);//刪除數(shù)據(jù) editor.commit();

      editor.clear();//刪除全部數(shù)據(jù) editor.commit();

      //5簡(jiǎn)寫形式如下: Editor editor = sp.eidt()

      //更改數(shù)據(jù)

      //讀取數(shù)據(jù)

      .putString(“name”,.commit();

      “賀昌峰”)23.使用TXT文件保存數(shù)據(jù) FileOutPutStream

      fout = openFileOutput(文件名, 文件權(quán)限);文件權(quán)限: MODE_PRIVATE, MODE_WORLD_READABLE, MODE_WORLD_WRITEABLE

      1.在文件中寫入數(shù)據(jù)

      try { //打開(kāi)TXT文件 FileOutPutStream

      BufferedOutputStream

      String

      //向文件中寫入數(shù)據(jù)

      bufferoutput.write(s.getBytes());s = “大家跟我學(xué)習(xí)android”;

      bufferoutput = new BufferedOutputStream(fout);fout = openFileOutput(“myconfig.txt”, MODE_PRIVATE);

      //關(guān)閉文件 bufferoutput.close();fout.close();} Catch(Exception e){

      2.從文件中讀取數(shù)據(jù)

      try { FileInputStream

      BufferedInputStream

      byte[] bufferbytes = new byte[20];int flag = bufferoutput.read(bufferbytes);if(flag==-1){ //文件讀取到文件末尾,否則可以繼續(xù)讀出

      }

      //僅讀取長(zhǎng)度為20個(gè)字節(jié)的數(shù)據(jù)

      bufferoutput = new BufferedInputStream(fout);

      fout = openFileInput(“myconfig.txt”);

      //打開(kāi)文件

      e.printStackTrace();} bufferoutput.close();fout.close();} Catch(Exception e){

      24.使用數(shù)據(jù)庫(kù)保存數(shù)據(jù) 1.數(shù)據(jù)庫(kù)相關(guān)類

      //關(guān)閉緩沖區(qū) //關(guān)閉文件

      e.printStackTrace();} import android.content.ContentValues;import android.content.Context;import android.database.Coursor;import android.database.SQLException;import android.database.sqlite.SQLiteDatabase;

      2.SQLiteDataBase類

      注意:數(shù)據(jù)庫(kù)操作時(shí),要求捕獲異常,此處省略。

      SQLiteDataBase db = openOrCreateDatabase(“databasename.db”, MODE_PRIVATE);//說(shuō)明:數(shù)據(jù)庫(kù)權(quán)限同文件權(quán)限

      // Context就是this指針 db.execSQL(sql_exp): 執(zhí)行SQL語(yǔ)句

      Cursor cs = db.rawQuery(select_exp, null): 返回?cái)?shù)據(jù)集。Cursor cs1 = db.query(arg0, ……): 使用較繁瑣,可用rawQuery替換。

      db.insert(arg0, ……): 使用較繁瑣,可用rawQuery替換。db.delete(arg0, ……): 使用較繁瑣,可用rawQuery替換。db.update(arg0, ……):

      使用較繁瑣,可用rawQuery替換

      db.close(): 一般寫在onDestroy事件中。3.Cursor類 方法有:

      move, moveToPosition, moveToFirst, moveToLast,moveToNext, getCount(), getInt(),getString(),isNull(), isFirst()等等。

      4.ContentValues類

      一般用在SQLiteDataBase.insert中, 此處省略。

      ContentValues content

      = new ContentValues();

      content.put(“name”, “賀昌峰”);

      moveToPrevious, content.put(“age”, 48);5.SimpleCursorAdapter類

      SimpleCursorAdapter是界面組件如ListView和Cursor的橋梁。例, 在ListView組件listview1中,顯示數(shù)據(jù)集(有綁定功能嗎?):

      Cursor cs = db.rawQuery(“select SimpleCursorAdapter

      adapter

      * from table”, null);

      = new SimpleCursorAdapter(this,android.R.layout.simple_list_item_2, new String[]{“id”, “name”}, new int[]{ android.R.id.text1, android.R.id.text2});// 注意:第2個(gè)參數(shù)的作用

      listview1.setAdapter(cs);

      //在ListView組件顯示數(shù)據(jù)集

      25.時(shí)間組件

      1.常用組件AnalogClock,DigitClock 用法比較簡(jiǎn)單,無(wú)需過(guò)多設(shè)置,僅僅顯示當(dāng)前時(shí)間:機(jī)械式,數(shù)字式

      2.計(jì)時(shí)組件:Chronometer 常用方法:start開(kāi)始計(jì)時(shí), stop停止計(jì)時(shí), setBase設(shè)置時(shí)間 setFormat(“秒表:%s”):設(shè)置組件時(shí)間顯示格式。

      附:與時(shí)間格式有關(guān)的函數(shù) SimpleDateFormat String

      sformat = new SimpleDateFormats(“hh:mm:ss”);

      //得得當(dāng)前時(shí)間 s = sformat.format(new Date());

      例,Chronometer對(duì)象是chroTime: chroTime.setOnChronometerTickListeter(chrolisteten);

      private Chronometer.onChronometerTickListeter Chronometer.onChronometerTickListeter(){ @Override public

      void OnChronometerTickListeter(Chronometer chronomoter){ //每秒執(zhí)行一次該方法 } }

      3.計(jì)時(shí)組件Timer和TimerTask

      chrolisteten = new 常用函數(shù):schedule(TimerTask對(duì)象, Timer對(duì)象延遲時(shí)間, TimerTask對(duì)象間隔時(shí)間);

      TimerTask對(duì)象用法: private TimerTask { public void run(){ //按設(shè)定間隔調(diào)用執(zhí)行 handle.sendMessage(msg);//特別注意:此處不能對(duì)界面進(jìn)行更新,因?yàn)橛绊懹?jì)時(shí)精度,所有需要使用Handle配合。見(jiàn)下。} }

      4.Handle和Message的配合使用 Handle handle { public void handleMessage(){ super.handleMessage();//進(jìn)行其它處理 }

      = new Handle()

      timetask = new TimerTask()} Message

      msg.what = “******”;handle.sendMessage(msg);

      26.線程Thread

      1.Thread的定義

      public class ClockThread extends Thread{ @Override public void run(){ //進(jìn)行其它處理

      //注意:不會(huì)自動(dòng)重復(fù)執(zhí)行多次的 } } 2.Thread的啟動(dòng)、延時(shí)啟動(dòng)、停止 使用Handle對(duì)線程進(jìn)行控制: msg = new Message();Handle handle = new Handle();

      ClockThread clock = new ClockThread();

      handle.post(clock);

      //啟動(dòng)線程 5000);

      //延時(shí)5000ms啟動(dòng)線程 //停止線程 handle.postDelayed(clock, handle.removeCallbacks(clock);

      問(wèn)題:使用Handle有什么優(yōu)點(diǎn)? 27.視頻播放VideoView 支持的文件格式:H.264的mp4, wmv, 3gp等。1.視頻播放

      private VideoView

      videoview.setVideoPath(“/sdcard/robot.mp4”);//增加控制面板

      videoview.setMediaController(new MediaController(getApplicationContext()));

      videoview

      = new VideoView();videoview.start();//開(kāi)始播放

      2.視頻準(zhǔn)備播放事件

      videoview.setOnPreparedListener(videoPreparedListener);videoview.setOnCompletionListener(videoCompletionListener);

      private MediaPlayer.onPreparedListener videoPreparedListener = new MediaPlayer.onPreparedListener(){ @Override public

      void onPrepared(MediaPlayer

      mp){ //視頻準(zhǔn)備播放 } }

      3.視頻播放完成事件

      private MediaPlayer.onCompletionListener videoCompletionListener = MediaPlayer.onCompletionListener(){ @Override public

      void onCompletion(MediaPlayer

      mp){

      new //視頻播放完成 } }

      28.MediaPlayer,SurfaceView和SurfaceHolder播放視頻

      MediaPlayer也可以播放視頻,需要SurfaceView和SurfaceHolder配合,其中SurfaceView為可視化組件可以播放視頻,SurfaceHolder為橋梁。

      private SurfaceView surfview = new SurfaceView();//此組件可視化設(shè)計(jì),無(wú)需這里聲明 private MediaPlayer

      surfholder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);mediaplayer.setAudioStreamType(AudioManager.STREAM_MUSIC);mediaplayer.setDisplay(surfholder);

      mediaplayer.setDataSource(“/sdcard/vedio.mp4”);mediaplayer.reset();

      //打開(kāi)視頻文件

      mediaplayer = new MediaPlayer();

      = surfview.getHolder();private SurfaceHolder surfholder

      //重新播放視頻 mediaplayer.prepare();mediaplayer.start();mediaplayer.stop();mediaplayer.release();

      //準(zhǔn)備播放視頻 //播放視頻

      29.錄制音頻MediaRecorder MediaRecorder

      mediaRecorder.SetAudioSource(MediaRecorder.AudioSource.MIC);mediaRecorder.SetAudioEncode(MediaRecorder.AudioEncode.DEFAULT);mediaRecorder.SetOutputFormat(MediaRecorder.OutputFormat.DEFAULT);mediaRecorder.SetOutputFile(“/sdcard/recorder.amr”);mediaRecorder.prepare();mediaRecorder.start();

      注意:要有寫入SD卡的權(quán)限,在AndroidManifest.xml文件中:

      //準(zhǔn)備錄音 //開(kāi)始錄音

      mediaRecorder = new MediaRecorder(); :

      1.附1:ImageView.setAlpha(50)的含義?設(shè)置透明色 2.附2:遍歷目錄下所有文件: private File pathfile;pathfile = Environment.getExternalStorageDirectory();

      //疑問(wèn):pathfile + ”/myfilename.txt” 這個(gè)用法正確嗎? for(File file: pathfile.listFiles()){ if {(file.getName().toLowerCase().endsWith(“.amr”))……

      // File.getAbsolutePath(), File.getName()的區(qū)別 } } 30.菜單組件 //添加系統(tǒng)菜單 protected protected static final int MENU_ABOUT

      = Menu.FIRST;static final int MENU_QUIT = Menu.FIRST + 1;

      //得到SD卡路經(jīng) protected

      @Override static final int MENU_EDIT = Menu.FIRST + 2;public boolean onCreateOptionsMenu(Menu menu){ menu.add(0,MENU_ABOUT,0,“關(guān)于本軟件...”).setShortcut('0','A');

      menu.add(0,MENU_QUIT,1,“結(jié)束”).setShortcut('1','E');

      menu.add(0,MENU_EDIT,2,“編輯”).setShortcut('2','D');

      menu.add(0,MENU_FILE,3,“文件”).setShortcut('3','F');

      return super.onCreateOptionsMenu(menu);} //添加菜單響應(yīng)事件 @Override public boolean onOptionsItemSelected(MenuItem switch(item.getItemId()){ case MENU_ABOUT: // 響應(yīng)處理 break;case MENU_QUIT: // 響應(yīng)處理 break;}

      return super.onOptionsItemSelected(item);}

      //添加快捷菜單 protected static final int MENU_BACKCOLOR protected static final int MENU_SMALLSIZE =

      item){

      = Menu.FIRST;

      Menu.FIRST + 1;//定義快捷菜單組件 private LinearLayout private TextView

      layout;

      txtview1,txtview2;在onCreate中, 增加以下語(yǔ)句: layout =(LinearLayout)findViewById(R.id.layout);txtview1 =(TextView)findViewById(R.id.txtview1);txtview2 =(TextView)findViewById(R.id.txtview2);registerForContextMenu(txtview1);registerForContextMenu(txtview2);

      在java文件類中, 增加以下語(yǔ)句: @Override public boolean onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo){ //注意:父類函數(shù)先調(diào)用,或最后調(diào)用? super.onCreateOptionsMenu(menu, v, menuInfo);

      if(v == txtview1)menu.add(0, MENU_BACKCOLOR,0,“設(shè)置背景顏色”); if(v == txtview2)menu.add(0, MENU_SMALLSIZE,1,“較小字體”);

      }

      //添加菜單響應(yīng)事件 @Override public boolean onContextItemSelected(MenuItem switch(item.getItemId()){ case MENU_BACKCOLOR: // 響應(yīng)處理

      layout.setBackgroundColor(Color.BLUE);break;case MENU_SMALLSIZE: // 響應(yīng)處理

      txtview2.setTextSize(12);break;}

      return super.onContextItemSelected(item);}

      item){

      下載Android日常開(kāi)發(fā)總結(jié)的技術(shù)經(jīng)驗(yàn)60條word格式文檔
      下載Android日常開(kāi)發(fā)總結(jié)的技術(shù)經(jīng)驗(yàn)60條.doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(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)范文推薦

        Qualcomm平臺(tái)android開(kāi)發(fā)總結(jié)

        1、 高通平臺(tái)android開(kāi)發(fā)總結(jié). 7 1.1 搭建高通平臺(tái)環(huán)境開(kāi)發(fā)環(huán)境. 7 1.2 搭建高通平臺(tái)環(huán)境開(kāi)發(fā)環(huán)境. 7 1.2.1 高通android智能平臺(tái)概述. 7 1.2.1.1 什么是L4,REX,BREW,AMSS以......

        Android開(kāi)發(fā)優(yōu)勢(shì)總結(jié)(推薦五篇)

        Android開(kāi)發(fā)優(yōu)勢(shì)總結(jié) 來(lái)源:扣丁學(xué)堂 目前市場(chǎng)上的移動(dòng)端有兩種形式,一種是Android開(kāi)發(fā),另一種是ios開(kāi)發(fā),其中Android開(kāi)發(fā)方面的人員要多一些,今天我們就一起來(lái)看一下扣丁學(xué)堂Andr......

        android開(kāi)發(fā)實(shí)習(xí)報(bào)告總結(jié)

        Android開(kāi)發(fā)實(shí)習(xí)總結(jié) 有一名話叫做:不經(jīng)過(guò)風(fēng)雨,怎么見(jiàn)彩虹?我想改一下:不真正進(jìn)入社會(huì),怎能了解社會(huì)呢? 在這次實(shí)習(xí)中,給我收獲最大的是我覺(jué)得很多工作需要我去摸索和探討,要不怕吃......

        Android開(kāi)發(fā)Info類總結(jié)

        Android開(kāi)發(fā)Info類總結(jié)首先我們來(lái)看一下PackageItemInfo,它是包含了一些信息的基類,它的直接子類有:ApplicationInfo、ComponentInfo、InstrumentationInfo、PermissionGroupI......

        Android應(yīng)用程序開(kāi)發(fā)-個(gè)人總結(jié)(最終定稿)

        《Android應(yīng)用開(kāi)發(fā)》個(gè)人總結(jié)報(bào)告 一、 項(xiàng)目簡(jiǎn)介: 送祝福App是一款逢年過(guò)節(jié)為方便發(fā)送祝福信息的軟件,并且介紹各種節(jié)日的相關(guān)情況。包含節(jié)日祝福短信,支持直接發(fā)送短信給好友......

        android 開(kāi)發(fā)心得

        即 使你的應(yīng)用程序是快速且響應(yīng)靈敏的,但一些設(shè)計(jì)仍然會(huì)給用戶造成問(wèn)題——與其它應(yīng)用程序或?qū)υ捒蛭词孪扔?jì)劃的交互,意外的數(shù)據(jù)丟失,意料之外的阻塞等等。 避免這些問(wèn)題,有助于......

        Android技術(shù)總結(jié)2(5篇)

        立成軟件文檔制度規(guī)范 //adt Installer http://apps.hi.baidu.com/share/detail/42194887 //Source Code 滑動(dòng) http://gekie.iteye.com/blog/1104426 //Source Code 集合......

        android教程JNI開(kāi)發(fā)疑點(diǎn)總結(jié)

        android教程JNI開(kāi)發(fā)疑點(diǎn)總結(jié) 很多Android新手對(duì)于JNI開(kāi)發(fā)過(guò)程中的疑問(wèn)不是很清楚,根據(jù)android123@163.com郵箱中反饋的內(nèi)容我們整理如下: 1. JNI中,什么情況才處理jstring、ji......