2018-10-31

安卓系統(tǒng)是開(kāi)源的

命名規(guī)則:1.5版本后用甜點(diǎn)作為代號(hào)

五大布局卜高,

FrameLayout(框架布局)
LinearLayout(線性布局)
Gridlayout(絕對(duì)布局)
RelativeLayout(相對(duì)布局)
TableLayout(表格布局)

activity的生命周期

  • onCreate(); 當(dāng)Activity第一次被創(chuàng)建的時(shí)候,就會(huì)調(diào)用OnCreate()方法厂榛,在 OnCreate()方法中慢叨,通常要設(shè)置Activity所使用的布局文件纽匙,對(duì)按 鈕綁定監(jiān)聽(tīng)器等等靜態(tài)的設(shè)置操作。
  • onResume(); 當(dāng)這個(gè)Activity能夠獲得用戶焦點(diǎn)(即用戶在屏幕上進(jìn)行操作的時(shí) 候
  • onPause(); 當(dāng)?shù)谝粋€(gè)Activity通過(guò)Intent啟動(dòng)第二個(gè)Activity的時(shí)候拍谐,則會(huì)先調(diào)用 前一個(gè)Activity的onPause()方法
  • onStop(); 當(dāng)?shù)诙€(gè)Activity把第一個(gè)Activity完全遮擋住的時(shí)候哄辣,即對(duì)用戶來(lái)說(shuō) 第一個(gè)Activity處于完全不可見(jiàn)的時(shí)候,那么第一個(gè)Activity則調(diào)用 onStop()方法將當(dāng)前Activity關(guān)閉赠尾。
  • onDestory(); 此方法將Activity銷毀力穗,銷毀之后,若想再調(diào)用此Activity气嫁,則需要從 新調(diào)用onCreate方法

頁(yè)面跳轉(zhuǎn)同時(shí)頁(yè)面值的雙向傳遞

Bundle bundle = new Bundle(); 
bundle.putSerializable("user", user); 
intent.putExtras(bundle);
Intent intent = this.getIntent(); 
user=(User)intent.getSerializableExtra("user");

Intent顯示隱式區(qū)別

  • 顯式intent:通過(guò)名字指定目標(biāo)組件当窗。顯式intent通 常用于應(yīng)用程序內(nèi)部消息,如一個(gè)活動(dòng)啟動(dòng)從屬的服 務(wù)或啟動(dòng)一個(gè)姐妹活動(dòng)寸宵。
  • 隱式intent:并不指定目標(biāo)的名字(組件名字字段是 空的)崖面。隱式intent經(jīng)常用于激活其它應(yīng)用程序中的 組件。

調(diào)用系統(tǒng)Action

Fragment的優(yōu)點(diǎn)

  • 在Fragment可以使你能夠?qū)ctivity分離成多個(gè)可重用 的組件梯影,每個(gè)都有它自己的生命周期和UI巫员。
  • Fragment可以輕松得創(chuàng)建動(dòng)態(tài)靈活的UI設(shè)計(jì),可以適 應(yīng)于不同的屏幕尺寸甲棍,從手機(jī)到平板電腦简识。
  • Fragment是一個(gè)獨(dú)立的模塊,并與activity綁定在一 起感猛,可以靜態(tài)或者在運(yùn)行中動(dòng)態(tài)地添加七扰、移除、交換等陪白。
  • Fragment提供一個(gè)新的方式讓你在不同的安卓設(shè)備上 統(tǒng)一你的UI颈走。
  • Fragment 解決Activity間的切換不流暢,輕量切換咱士。
  • Fragment能替代TabActivity做導(dǎo)航立由,性能更好。
  • Fragment 在4.2版本中新增嵌套fragment使用方法序厉,能夠生成 更好的界面效果锐膜。
  • Fragment做局部?jī)?nèi)容更新更加方便,可以在Activity中使用多個(gè) Fragment脂矫,并在需要的時(shí)候加載Fragment枣耀,提高性能。
  • 可以從startActivityForResult中接收到返回結(jié)果,但是View不能捞奕。

android使用MVC的優(yōu)點(diǎn)牺堰,以及為什么

可以將UI界面顯示部分、 業(yè)務(wù)邏輯和數(shù)據(jù)處理分開(kāi)颅围。

  • 程序員可以將UI設(shè)計(jì)交給美工處理伟葫,將重點(diǎn)放在核心 代碼的編寫(xiě)上,從而提高效率院促;
  • 在開(kāi)發(fā)過(guò)程中筏养,便于修改、新增渐溶、移除新的模塊;
  • Android系統(tǒng)專門(mén)提供了“res/values/”目錄下的諸 如strings.xml弄抬、colors.xml類型的文件,便于調(diào)用和 修改掂恕。

ListView拖陆,RecycleView列表展示以及優(yōu)點(diǎn),adapter(需要實(shí)現(xiàn)的三個(gè)方法)懊亡,布局管理器,注意依賴包的添加

  • 在android開(kāi)發(fā)中ListView是比較常 用的組件依啰,它以垂直列表的形式展示 具體內(nèi)容,并且能夠根據(jù)數(shù)據(jù)的長(zhǎng)度 自適應(yīng)顯示店枣。用于呈現(xiàn)多條布局相同 的顯示內(nèi)容速警。
  • 適配器分為以下三種,均繼承自BaseAdapter:
    • ArrayAdapter:支持泛型操作艰争,最為簡(jiǎn)單坏瞄,只能展示一行字桂对。
    • SimpleAdapter:有最好的擴(kuò)充性甩卓,可以自定義出各種效效果。
    • SimpleCursorAdapter:可以認(rèn)為是SimpleAdapter對(duì)數(shù)據(jù)庫(kù)的 簡(jiǎn)單結(jié)合蕉斜,可以方面的把數(shù)據(jù)庫(kù)的內(nèi)容以列表的形式展示出來(lái)逾柿。

CardView各種設(shè)置

TableLayout調(diào)用addTab的方法加入新頁(yè)面

DrawerLayout+Toolbar的使用

Android的四大組件,廣播接收器(定義方法宅此,兩種注冊(cè)方法)

  • Activity

使用步驟

  1. 創(chuàng)建新的Activity机错,布局名稱LoginActivity,創(chuàng)建布局與創(chuàng)建普通布局文件相同
  2. 在清單文件中添加
<activity android:name=".LoginActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
  1. 主窗體調(diào)用子窗體父腕,我們假設(shè)從MainActivity跳轉(zhuǎn)至LoginActivity
Intent intent = new Intent();
intent.setClass(MainActivity.this,LoginActivity.class);
startActivity(intent);
  • Service

Service有兩種方式弱匪,啟動(dòng)的和綁定的
啟動(dòng)的生命周期:創(chuàng)建服務(wù),開(kāi)始服務(wù)璧亮,銷毀服務(wù)萧诫。
綁定的生命周期:創(chuàng)建服務(wù)斥难,綁定服務(wù),解除綁定帘饶,銷毀服務(wù)哑诊。

  • Broadcast Receiver

廣播接收器的實(shí)現(xiàn):繼承BroadcastReceiver類,重寫(xiě)onReceive方法

public class MyReceiver extends BroadcastReceiver{
    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context,"這是一個(gè)接收 器:"+intent.getStringExtra("receive"),Toast.LENGTH_LONG).show();
    }
}

廣播實(shí)現(xiàn)的兩種方式
靜態(tài)注冊(cè)(在xml中靜態(tài)指定):在清單文件中注冊(cè)BroadcastReceiver

<activity android:name=".MainActivity" >
     <intent-filter>
          <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
</activity>

動(dòng)態(tài)注冊(cè)(在程序中動(dòng)態(tài)注冊(cè)):在java代碼中注冊(cè)BroadcastReceiver

receiveBroadcast = new ReceiveBroadCast();
IntentFilter filter = new IntentFilter();
Filter.addAction(Tag);
registerReceiver(receiveBroadcast,filter)

區(qū)別:作用范圍不同及刻,動(dòng)態(tài)注冊(cè)只在程序過(guò)程中有效镀裤,靜態(tài)注冊(cè)是不管程序是否啟動(dòng)都有用

  • Content Provider

提供了應(yīng)用程序之間共享數(shù)據(jù)的方法,為存儲(chǔ)和 讀取數(shù)據(jù)提供了統(tǒng)一的接口缴饭。

  • URI:content://com.example.stuprovider/StuInfo/2/name
    表示需要操作StuInfo表中ID為2的記錄的name字段
  • ContentResolver方法介紹:
    • query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder): 通過(guò)uri進(jìn)行查詢暑劝,返回一個(gè)Cursor
    • insert(Uri url, ContentValues values): 向uri對(duì)應(yīng)的ContentProvider中插入values對(duì)應(yīng)的數(shù) 據(jù),返回最新添加記錄的uri颗搂。
    • update(Uri uri, ContentValues values, String where, String[] selectionArgs): 更新Uri指定位置的數(shù)據(jù)铃岔,返回更新的行數(shù)。
    • delete(Uri url, String where, String[] selectionArgs): 刪除指定Uri并且符合一定條件的數(shù)據(jù)峭火,返回刪除的行數(shù)毁习。

Service,啟動(dòng)狀態(tài)or綁定狀態(tài)

  • 通過(guò)startService()啟動(dòng)的服務(wù)處于“啟動(dòng)的”狀態(tài)卖丸,一 旦啟動(dòng)纺且,service就在后臺(tái)運(yùn)行,即使啟動(dòng)它的應(yīng)用組件 已經(jīng)被銷毀了稍浆。當(dāng)任務(wù)完成時(shí)载碌,為了節(jié)省系統(tǒng)資源,一 定要停止service衅枫,可以通過(guò)stopSelf()來(lái)停止嫁艇,也可以 在其他組件中通過(guò)stopService()來(lái)停止。
  • “綁定”狀態(tài)的service弦撩,通過(guò)調(diào)用bindService()來(lái)啟動(dòng)步咪, 一個(gè)綁定的service提供一個(gè)允許組件與service交互的接 口,可以發(fā)送請(qǐng)求益楼、獲取返回結(jié)果猾漫。綁定的service只有 當(dāng)應(yīng)用組件綁定后才能運(yùn)行,多個(gè)組件可以綁定一個(gè) service感凤,當(dāng)調(diào)用unbind()方法時(shí)悯周,這個(gè)service就會(huì)被銷 毀了。

發(fā)送短信例子(26以下清單文件指明權(quán)限陪竿,26以上是動(dòng)態(tài))

本地存儲(chǔ)的四種方式:特點(diǎn)及應(yīng)用場(chǎng)景

  • SharedPreferences:SharedPreferences提供一套 完整的存儲(chǔ)基本類型數(shù)據(jù)的方法禽翼,可以將數(shù)據(jù)保存到 私有數(shù)據(jù)區(qū),只能被寫(xiě)入這些數(shù)據(jù)的應(yīng)用程序讀取。
  • Internal Storage:手機(jī)內(nèi)部存儲(chǔ)闰挡,以文件方式保存 數(shù)據(jù)仇矾,只能本程序使用,外部的應(yīng)用程序無(wú)法訪問(wèn)該 文件解总;需要注意的是贮匕,文件也是臨時(shí)性的,當(dāng)卸載本 程序時(shí)花枫,該文件也會(huì)被刪除刻盐。
  • External Storage:手機(jī)的外部存儲(chǔ)(如SD卡),也是以文 件的形式存儲(chǔ)數(shù)據(jù)劳翰,一般存儲(chǔ)數(shù)據(jù)量較大的公共數(shù)據(jù)敦锌。需 注意的是,保存在外部存儲(chǔ)設(shè)備的數(shù)據(jù)是公開(kāi)且不安全的佳簸, 用戶可以自由進(jìn)行讀寫(xiě)操作乙墙,甚至可以刪除。
  • SQLite Database:SQLite是標(biāo)準(zhǔn)的關(guān)系型數(shù)據(jù)庫(kù)生均,具有 小巧听想、獨(dú)立性高、安全性高马胧、跨平臺(tái)和多語(yǔ)言接口等優(yōu)點(diǎn)汉买, 用戶可以使用標(biāo)準(zhǔn)的SQL語(yǔ)句進(jìn)行數(shù)據(jù)的增刪改查。它內(nèi) 置于Android系統(tǒng)中佩脊,一般用于存儲(chǔ)復(fù)雜類型的數(shù)據(jù)蛙粘。

SharedPreferences的四種操作模式,保存數(shù)據(jù)時(shí)不要忘記commit()

  • Context.MODE_PRIVATE:為默認(rèn)操作模式,代表該文件是私有數(shù) 據(jù),只能被應(yīng)用本身訪問(wèn)威彰,在該模式下 寫(xiě)入的內(nèi)容會(huì)覆蓋原文件的內(nèi)容
  • Context.MODE_APPEND:該模式會(huì)檢查文件是否存在,存在就往 文件追加內(nèi)容,否則就創(chuàng)建新文件
  • Context.MODE_WORLD_READABLE:表示當(dāng)前文件可以被其他應(yīng)用讀取
  • Context.MODE_WORLD_WRITEABLE:表示當(dāng)前文件可以被其他應(yīng)用寫(xiě)入
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末出牧,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子歇盼,更是在濱河造成了極大的恐慌舔痕,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件旺遮,死亡現(xiàn)場(chǎng)離奇詭異赵讯,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)耿眉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)鱼响,“玉大人鸣剪,你說(shuō)我怎么就攤上這事。” “怎么了筐骇?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵债鸡,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我铛纬,道長(zhǎng)厌均,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任告唆,我火速辦了婚禮棺弊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘擒悬。我一直安慰自己模她,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布懂牧。 她就那樣靜靜地躺著侈净,像睡著了一般甜害。 火紅的嫁衣襯著肌膚如雪唐含。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,554評(píng)論 1 305
  • 那天掐场,我揣著相機(jī)與錄音躯保,去河邊找鬼夏伊。 笑死,一個(gè)胖子當(dāng)著我的面吹牛吻氧,可吹牛的內(nèi)容都是我干的溺忧。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼盯孙,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼鲁森!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起振惰,我...
    開(kāi)封第一講書(shū)人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤歌溉,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后骑晶,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體痛垛,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年桶蛔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了匙头。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡仔雷,死狀恐怖蹂析,靈堂內(nèi)的尸體忽然破棺而出舔示,到底是詐尸還是另有隱情,我是刑警寧澤电抚,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布惕稻,位于F島的核電站,受9級(jí)特大地震影響蝙叛,放射性物質(zhì)發(fā)生泄漏俺祠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一借帘、第九天 我趴在偏房一處隱蔽的房頂上張望蜘渣。 院中可真熱鬧,春花似錦姻蚓、人聲如沸宋梧。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)捂龄。三九已至,卻和暖如春加叁,著一層夾襖步出監(jiān)牢的瞬間倦沧,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工它匕, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留展融,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓豫柬,卻偏偏與公主長(zhǎng)得像告希,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子烧给,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,135評(píng)論 25 707
  • 用兩張圖告訴你燕偶,為什么你的 App 會(huì)卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 12,724評(píng)論 2 59
  • 面試必背 會(huì)舍棄础嫡、總結(jié)概括——根據(jù)我這些年面試和看面試題搜集過(guò)來(lái)的知識(shí)點(diǎn)匯總而來(lái) 建議根據(jù)我的寫(xiě)的面試應(yīng)對(duì)思路中的...
    luoyangzk閱讀 6,755評(píng)論 6 173
  • 今天的練習(xí)圖指么,橘右京,毀了
    ruoshuiYuH閱讀 206評(píng)論 0 1
  • 你說(shuō)深夜的天空應(yīng)該是清爽的淡藍(lán)色榴鼎,白云萬(wàn)里伯诬,微風(fēng)拂面,蟋蟀蛐蛐在露天彈唱巫财; 我不相信盗似,斥責(zé)你是一個(gè)瞎子,看不到深夜...
    勾魂度閱讀 446評(píng)論 5 5