Android工程師

download:Android工程師

移動端市場份額第一,物聯網時代落地載體
Android不只能開發App,Android是一個生態系統
Googl不倒,Android不滅,Android不僅能開發App,在物聯網,智能家居,車載設備都大有可爲。
階段一1.Android 零基礎入門導學視頻
Android大樓Java起,本階段是Android攻城獅培養計劃的第一部分語法與界面基礎篇,將帶大家從0開始入門Android開發。



5步驟 / 41門課
·
課程總時長:58小時
·
練習題:430
·
作業:9
·
考試:4
·
課程源碼:39
·
教輔資料:143
步驟1
java基礎語法
Java入門第一步,學習常量與變量、運算符、流程控制、數組和方法等Java基礎語法。掌握Java程序的執行流程,能夠編寫符合Java語法規則的程序。














第1課 Java初識
第2課 Java常量與變量
第3課 Java運算符
第4課 Java流程控制之選擇結構
第5課 Java流程控制之循環結構
第6課 Java一維數組
第7課 Java數組之二維數組
第8課 Java方法
第9課 綜合案例:數組移位
第10課 Java基礎語法測試
步驟2
java面向對象
面向對象是開發過程中的重點內容!本步驟會介紹面向對象的三大特徵繼承、封裝、多態,最終能編寫具有面向對象思想的Java程序。











第1課 Java面向對象
第2課 Java封裝
第3課 綜合案例:學生信息管理
第4課 Java繼承(上)
第5課 Java繼承(下)
第6課 Java單例模式
第7課 Java多態
第8課 Java面向對象測試
步驟3
Java常用工具類
工具類的查看是開發中的必備技能!本步驟會介紹包裝器、字符串處理類、集合、多線程和輸入輸出流等內容,並通過最後的綜合案例,讓你的Java技能更上一層樓。









第1課 Java異常
第2課 Java包裝類
第3課 Java字符串
第4課 Java集合
第5課 Java多線程
第6課 Java輸入輸出流
第7課 綜合案例:播放器
第8課 Java常用工具測試
步驟4
UI基礎入門
在本步驟中,先通過介紹Android的發展前景,讓你對Android開發有一個初步的認識;再通過創建項目以及目錄結構分析,讓你瞭解第一個Android項目;最後通過UI基礎,常用控件等課程讓你開始上手Android開發。









第1課 Android入門
第2課 AS使用指南
第3課 Android線性與相對佈局
第4課 UI基礎控件
第5課 Android約束佈局
第6課 綜合案例:選餐
第7課 UI基礎入門測試
步驟5
UI常用組件
在本步驟中將爲大家介紹Android中四大組件之一Activity,以及高級控件Menu和Diaglog以及碎片化界面管理,最後以一個綜合案例來結束本步驟。相信這些內容能夠爲大家打下一個良好的基礎。








第1課 Activity入門
第2課 Android菜單創建和使用
第3課 Android對話框處理
第4課 Activity生命週期詳解
第5課 Fragment創建及使用
第6課 ListView——列表神器
第7課 ViewPager實現導航效果
第8課 綜合案例:慕淘旅遊
階段二2.Android 網絡操作與流行框架導學視頻
本階段是聯網及數據處理的必備技能。課程從網絡基礎知識到線程間協同工作、異步下載處理;從文件存儲、到輕量級數據庫SQLite的使用;最後利用最流程的第三方框架助你快速開發企業級APP。








6步驟 / 23門課
·
課程總時長:37小時
·
練習題:114
·
作業:4
·
考試:2
·
課程源碼:28
·
教輔資料:66
步驟1
網絡操作與通信
本步驟是網絡操作的必備基礎,數據從哪來呢?怎麼才能從服務器上獲取實時的真數據呢?如果你有這個疑問,那你來對地方了。本步驟將介紹在Android中如何訪問網絡,並且將獲取的數據在UI顯示出來。














第1課 Android網絡操作
第2課 Handler通信
第3課 AsyncTask異步任務
步驟2
高級控件
本步驟是網絡數據顯示的必備內容,在Android中如何訪問網絡之後,本步驟將介紹如何將獲取的數據用列表控件在本地展示出來。




第1課 CardView實現卡片佈局效果
第2課 屏幕適配
第3課 Android網絡操作測試
步驟3
數據存儲
本步驟是數據存儲操作的必備內容, 爲什麼App關掉數據就沒有了呢?數據都要重新從服務器請求嗎?其實可以把數據存儲在本地!本步驟將爲大家講解4種將數據存儲在本地的方式,利用數據存儲和網絡操作提升App性能。




第1課 Android本地文件操作
第2課 Android數據庫操作
第3課 手風琴特效
第4課 BroadcastReceiver
第5課 Application全局應用
第6課 Android本地數據操作測試
步驟4
流行框架(上)
本步驟將爲大家介紹另一種編程方式:框架。框架的誕生將開發人員從複雜的步驟中解放出來,讓我們專注於邏輯的開發。本步驟將爲大家介紹流行框架:網絡操作框架OKhttp,數據庫框架GreenDao,圖片加載框架Glide等。







第1課 OkHttp&Retrofit網絡框架
第2課 EventBus事件總線
第3課 RecyclerView列表流行控件
第4課 Glide圖片流行框架
第5課 GreenDao數據庫框架
步驟5
流行框架(下)
本步驟將傳授大家專注於Android系統的View注入框架ButterKnife,還會介紹主流第三方平臺接入技術,極光推送和百度地圖。爲了方便開發者實現網頁交互需求,這裏還會爲大家講解WebView組件使用。






第1課 極光推送
第2課 WebView瀏覽器組件
第3課 ButterKnife實現View注入
第4課 百度地圖
步驟6
項目實戰
通過兩個綜合案例,帶領大家鞏固前面所學到的知識,掌握使用網絡+第三方庫製作一個餐飲類和一個圖書閱讀類的案例。





第1課 仿外賣開發點餐APP
第2課 仿QQ閱讀的小慕書苑閱讀器(贈送,瞭解)
階段三3.Android 高級應用與Kotlin綜合實戰導學視頻
本階段是提升項目經驗的必備,除Android開發的高級控件,還有Android官方大力推薦的開發語言Kotlin,未來Android發展的方向,最後使用Kotlin來開發熱門電商項目。


6步驟 / 30門課
·
課程總時長:46小時
·
練習題:118
·
作業:5
·
考試:3
·
課程源碼:26
·
教輔資料:67
步驟1
Android高級應用
本步驟是Android基礎組件學習的必備內容,將爲大家介紹Android高級組件ContentProvider和服務Service。














第1課 Service基礎
第2課 AIDL實現遠程服務的通信
第3課 ContentProvider初體驗
第4課 Socket&Https通信
第5課 Android高級應用測試2
步驟2
Android動畫處理與自定義View
助你提升app體驗打造跨選app的必備內容,在一相些炫酷的APP中,那一定會有動畫身影。本步驟將介紹android的基礎動畫與轉場動畫。還有與之相關的自定義View。






第1課 動畫基礎
第2課 轉場動畫
第3課 自定義View
第4課 SurfaceView遊戲應用
第5課 Android事件分發機制
第6課 動畫測試
步驟3
實戰:小慕計步器
本步驟助你提升本地app開發經驗,將一起來完成“小慕計步器”這個項目,督促宅男宅女時刻運動,爲你的健康保駕護航。最後還會學習現在製作團隊流行的APP熱修復技術,和上架APP應用。







第1課 實戰:計步器app項目準備
第2課 實戰:計步器app功能實現
第3課 熱修復
第4課 應用上架
步驟4
未來開發主流語言:Kotlin
本步驟是掌握Android主流語言的必備基礎內容,學習官方推薦主流語言-Kotlin。從數據類型開始,到流程控制、面向對象等基礎語法內容。通過本步驟學習,使你編寫出符合Kotlin語法規則的程序。





第1課 初識Kotlin
第2課 Kotlin基礎語法
第3課 Kotlin控制結構
第4課 Kotlin面向對象
第5課 Kotlin課程總結
第6課 Android開發Kotlin測試
步驟5
實戰:仿小米開發小慕商城
本步驟將大力提升你的項目經驗,使用Kotlin語言,通過開發移動端最流行的APP類型-電商項目,讓大家不僅對Kotlin進步的熟悉,而且還達到了真實項目經驗的積累。







第1課 電商通用模塊的搭建
第2課 電商UI框架搭建
第3課 電商主頁實現
第4課 商品分類
第5課 購物車
第6課 商品詳情
步驟6
面試精講
本步驟助力你更有競爭力,介紹一個在收到面試邀請後的面試者在面試之前需要準備的內容,面試的心態,以及在面試過程中經常提及到的問題。







第1課 面試精講之核心技能點梳理
第2課 面試精講之View
第3課 面試精講之ContentProvider

一、用戶界面典範
1.自界說窗口
體系主題或自界說主題都必須在清單文件中設置。
一切經過 Activity.requestWindowFeature()辦法修改窗口特性的懇求都必須在調用
Activity.setContentView()之前完成。在此之後的一切改動都不會生效。
//設置自界說標題的佈局資源
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.custom_title);
2.動態開關體系的UI控件
夜間方式 API Level 11
任何視圖中調用 setSystemUiVisibility()
即可。而想要恢復到默許方式,需求以同樣的方式調用 SYSTEM_UI_FLAG_VISIBLE。通
過調用 getSystemUiVisibility()並檢查標識的當時狀態就能夠知道我們現在所在的方式了 。
XML 佈局文件中的根元素是 LayoutInflater. inflate()回來的 View 元素
3.屏幕分辨率
低分辨率(ldpi): 120 dpi 尺度是 mdpi 的 75%
中分辨率(mdpi): 160 dpi 原始的圖片尺度
高分辨率(hdpi): 240 dpi 尺度是 mdpi 的 150%
超高分辨率(xhdpi): 320 dpi (API Level 8 新增) 尺度是 mdpi 的 200%
超級高(xxhdpi): 480 dpi (API Level 16 新增) 尺度是 mdpi 的 300%
4.鎖定Activity方向
android:screenOrientation="portrait"或 android:screenOrientation="landscape"
假如爲 Activity 設置了 android:screenOrientation="behind", Activity 就會跟 Activity 棧中前一個 Activity 的方向保持一致
android:configChanges="orientation|keyboardHidden" />
在一條賦值語句中能夠註冊多種變動,用“ |”符號將它們分隔即可。
5.彈出菜單
也能夠調用 Activity.openContextMenu()來觸發任意視圖的 ContextMenu,傳入之前注
冊的視圖即可。
程序清單 2-29 自界說佈局的 AlertDialog
public class CustomItemActivity extends Activity
implements DialogInterface.OnClickListener, View.OnClickListener {
private static final String[] ZONES = {"Pacific Time", "Mountain Time",
"Central Time", "Eastern Time", "Atlantic Time"};
private static final String[] OFFSETS =
{"GMT-08:00", "GMT-07:00", "GMT-06:00", "GMT-05:00", "GMT-04:00"};
Button mButton;
AlertDialog mActions;br/>@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle("Activity");
mButton = new Button(this);
mButton.setText("Click for Time Zones");
mButton.setOnClickListener(this);
ArrayAdapteradapter = new ArrayAdapter(this,
R.layout.list_item) {







br/>@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
if(row == null) {
row = getLayoutInflater().inflate(R.layout.list_item,
parent, false);
}
TextView name = (TextView) row.findViewById(R.id.text_name);
TextView detail = (TextView) row.findViewById(R.id.text_detail);
name.setText(ZONES[position]);
detail.setText(OFFSETS[position]);
return row;










br/>}
@Override
public int getCount() {
return ZONES.length;
}};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Select Time Zone");
builder.setAdapter(adapter, this);
//這兒的撤銷動作只會讓對話框消失,但在用戶單擊 Cancel 按鈕時,也能夠添加一個
//監聽器來處理一些其他的操作
builder.setNegativeButton("Cancel", null);
mActions = builder.create();










br/>setContentView(mButton);
}
//這兒處理列表的挑選事件
@Override
public void onClick(DialogInterface dialog, int which) {
String selected = ZONES[which];
mButton.setText(selected);
}
//這兒處理 Button 的單擊事件(彈出對話框)







br/>@Override
public void onClick(View v) {
mActions.show();
}
}
6.模仿home鍵
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent);
7.TextView
SDK 中有一些很便利的預界說的用於格式化文本輸入的 TextWatcher 實例
8.動畫
Android SDK的AnimationUtils 類加載
滑入和漸顯AnimationUtils.makeInAnimation()用布爾參數決議滑入的方向是左邊仍是右側向上
滑入和漸顯 AnimationUtils.makeInChildBottomAnimation() 視圖總是從屏幕的底部向上滑入
滑出和漸隱 AnimationUtils.makeOutAnimation() 用布爾參數決議滑入的方向是左邊仍是右側
漸隱 AnimationUtils.loadAnimation() 將 int 參數設爲 android.R.anim.fade_out
漸顯 AnimationUtils.loadAnimation() 將 int 參數設爲 android.R.anim.fade_in
AlphaAnimation 以動畫的守時改動視圖的透明度。
RotateAnimation 以動畫的方式改動視圖的旋轉角度。中心點是可裝備的,默許是左上角。
ScaleAnimation 以動畫的方式改動視圖的縮放比例(鉅細)。中心點是默許是左上角。
TranslateAnimation 以動畫的方式改動視圖的方位。
動畫視圖 ViewPropertyAnimator
ObjectAnimator
在 XML 頂用標籤界說 Drawable 時,實際上是創立了一個 GradientDrawable
方針。方針的形狀能夠是矩形、橢圓、線條或圓圈,最常見的佈景形狀是矩形。具體來說,
在運用矩形時,能夠用下面這些參數界說形狀:
● 角半徑 界說 4 個角的半徑,或是分別界說各個角的半徑。
● 突變 線性、放射或 sweep 突變。兩個或三個色彩值。方向能夠是 45°的任何倍數(0 便是從左到右, 90 便是從下到上,以此類推)。
● 固定色彩 用一種色彩填充形狀。 假如一同界說了突變的話,作用會受影響。
● 邊線 方針形狀的邊界。 界說寬度和色彩。
● 鉅細和 padding
XML 中色彩的種類約束是 3 種,可是 GradientDrawable 的構造函數中的色彩參數是一個整型數組int[],傳遞多少色彩都能夠。
Activity 間的過渡動畫, 能夠運用 overridePendingTransition()
Fragment 的過渡動畫,能夠運用 onCreateAnimation()或 onCreateAnimator()
經過調用 setCustomAnimations()覆寫單個 FragmentTransaction 的
過渡動畫。
setCustomAnimations()必須在 add()、 replace()和其他動作辦法之前調用,不然動畫將不
會運行。








































































9.圓角遮罩
首先在 Canvas 中依據所需的圓角半徑創立一個圓角矩形,然後以 PorterDuff.Mode.SRC_IN 爲畫筆在同一個 Canvas 上繪製源圖,得到的便是帶圓角的源圖。
10.Dialog
呈現給用戶的界面需求在旋轉過程中保持狀態,始終處於最前端,更好的辦法是
運用 Activity。這樣就能夠經過各種生命週期回調辦法來保存和讀取狀態。
11.自界說Enter鍵
android:imeOptions
actionUnspecified:默許值,依據設備的狀況顯現動作。
actionGo:在 Enter 鍵上顯現 Go。
ActionSearch:在 Enter 鍵上顯現 Search。
actionSend:在 Enter 鍵上顯現 Send。
antionNext:在 Enter 鍵上顯現 Next。
actionDone:在 Enter 鍵上顯現 Done。
自界說用戶按下按鍵時所觸發的動作。重
載動作的默許行爲需求給相應的視圖加上 TextView.OnEditorActionListener。
用 InputMethodManager.hideSoftInputFromWindow()辦法能夠讓輸入法管理器隱藏可見
的輸入法。
12.listview
ExpandableListView 控件及其適配器能夠處理分節列表中的二維數據結構。
13.getPageWidth()。
這個辦法允許你在每個方位上設置圖片頁面鉅細相關於 ViewPager 頁面鉅細的百分比。默
認值爲 1,前面的示例也沒有改動該默許值。但假如要一次顯現幾個頁面,能夠經過調整
這個辦法的回來值來完成





















二、顯現web信息
1.經過url顯現的運用
拜訪XX網站
經過web服務器顯現實時更新的頁面,能夠動態更新
顯現大資源圖片,經過縮放來交互
2.顯現本地資源
可用assets目錄存儲本地資源 file:///android_asset
可顯現string資源或變量中的原始html代碼
3.經過WebviewClient阻攔事件
WebViewClient.shouldOverrideUrlLoading()回調來阻攔和監控用戶的 Activity
shouldOverrideUrlLoading()會依據傳入的 URL 決議是否要在 WebView 中加
載內容, 防止用戶脫離想要展現 的網站。
WebView.addJavascriptInterface()會爲 JavaScript 綁定一個 Java 方針,這樣就能夠在
WebView 中調用 Java 的辦法。會存在javascript注入問題
4.下載圖片
徹底在後臺下載運用DownloadManager API service 支撐斷點續傳
DownloadManager.Request 懇求方針,它代表了下載的內容
Request.setAllowedNetworkTypes():指定下載所運用的網絡類型
Request.setAllowedOverRoaming():設定當設備處於漫遊方式時是否要下載。
Request.setDescription():設置下載在體系告訴欄中顯現的描述。
Request.setDestinationInExternalFilesDir():設置方針方位爲外部存儲器中的一個隱藏目錄
Request.setDestinationInExternalPublicDir():設置方針方位爲外部存儲器中的一公共目錄
Request.setDestinationUri():設置方針方位爲坐落外部存儲器中一個文件 Uri
三。通信
1.接納短信
註冊一個 BroadcastReceiver 來監聽收到的音訊,並在 onReceive()中處理它們。當收到一條短信時,操作體系會發送一個 action 值爲 android.provider.Telephony.SMS_RECEIVED
的播送 Intent。運用程序則能夠註冊一個 BroadcastReceiver 過濾這個 Intent 並處理收到的
數據。接納短信需求在 manifest 中聲明 android.permission.RECEIVE_SMS 權限。
2.藍牙通信
藍牙上的銜接是經過發現可用的“服務”,並經過一個 128 位的 UUID 銜接到相應的服務。
android.permission.BLUETOOTH 權限。另外,想要改動藍牙的可發現性以及啓用/禁用藍牙適配器,還要在 manifest 中聲明android.permission.BLUETOOTH_ADMIN 權限
3.查詢網絡銜接狀態
經過 ConnectivityManager 監控設備的網絡銜接狀態。
public boolean isNetworkReachable() {
ConnectivityManager mManage = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo current = mManager.getActiveNetworkInfo();
if(current == null) {
return false;
}
return (current.getState() == NetworkInfo.State.CONNECTED);
}
判別鏈接類型
return (current.getType() == ConnectivityManager.TYPE_WIFI);
4.運用NFC傳輸數據
依據想要推送內容的鉅細,有兩種機制能夠用來在兩個設備間 Beam 數據。
第一種. 運用前臺 Push 進行 Beam。假如運用 NFC 在設備間發送簡略的內容, 能夠運用前臺推送機制來創立一個 NfcMessage,它包含了一個或多個 NfcRecord 實例。
第二種,Android Application Record
5.運用 Beam 來發送大型圖片文件
6.USB鏈接
端點: USB 設備的最小構件。運用程序最終便是經過銜接端點發送和接納數據的。首要分4 種類型:
y 操控傳輸:用於裝備和狀態指令。每個設備至少一個操控端點,即“端點 0”,不會相關任何接口。
y 中斷傳輸:用於小量的、高優先級的操控指令。
y 批量傳輸:用於傳輸大數據。一般都是雙向成對出現的(1 IN 和 1 OUT)。
同步傳輸:用於實時數據傳輸,如音頻。編撰本書時最新的 Android SDK 還不支撐這個功能。
● 接口:端點的集合,用來表明一個“邏輯”設備 。
y 多個物理 USB 設備關於主機來說能夠呈現爲多個邏輯設備, 即經過露出接口來標識 。
● 裝備:一個或多個接口的集合。 USB 強制規定一個設備在某一特守時間只能有一個裝備是激活的。事實上,大都設備也就只有一個裝備,並把它作爲設備的操作方式























































四、設備硬件交互
1.定位
需求留意設備的電量以及尊重用戶的志願
GPS 回來的信息愈加精確(差錯爲幾米),但需求的時間更長並且更耗電,
而網絡方位一般精確到幾千米,但速度更快並且省電
android.permission.ACCESS_COARSE_LOCATION 或
android.permission.ACCESS_FINE_LOCATION 權限
(1) 判別所需的方位信息源是否可用。假如不可用的話,決議是要求用戶啓用它仍是
測驗其他的信息源。
(2) 用恰當的最小距離和更新時間距離註冊設備方位的改變狀況。
(3) 當不需求時,及時撤銷對設備方位改變狀況的註冊,以節約電量。
2.地圖方位
百度、高德、谷歌
3.拍攝相片和視頻
將保存圖片的文件方位指定爲設備的外部存儲器指定 android.permission.
WRITE_EXTERNAL_STORAGE 權限。
在攝像頭不用時及時調用Camera.release()辦法在攝像頭不用時及時調用Camera.release()辦法
錄音
private void resetRecorder() {
//告訴錄音機將運用設備的麥克作爲音頻輸入源(AudioSource.MIC)
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
recorder.setOutputFile(path.getAbsolutePath());
try {
recorder.prepare();
} catch (Exception e) {
e.printStackTrace();
}
}
經過 android.speech 包中的類能夠運用 Android 設備中內置的語音辨認技能。
4.傳感器
運用 SensorManager 接納來自於加速度計傳感器繼續的反饋數據
registerListener()的最後一個參數界說了更新頻率。這兒挑選的是 SENSOR_DELAY_UI,它是接納更新的最快頻率,每次更新都會直接修改 UI。
每當傳感器有新值更新,都會用 SensorEven 值一同調用已註冊監聽器的 onSensorChanged()辦法。這個 SensorEvent 值包含了 X/Y/Z 軸上的加速度值。
羅盤傳感器
設備的磁場傳感器和加速度計一同確定用戶面向的方向
運用 SensorManager 的 getOrientation()得到用戶在地球上的方向
5.從媒體內容得到截圖的縮略圖或其他元數據
MediaMetadataRetriever 讀取媒體文件並回來有用的信息,能夠讀取和盯梢專輯或藝術家數據、或許內容數據本身,抓取該幀的截圖






































四。數據耐久化
1.存儲、修改和顯現用戶設置及運用設置
PreferenceActivity 和 XML Preference 文件
2.讀寫文件
內部存儲
受維護的用於讀寫文件數據的目錄空間。
外部存儲
外部掛載的用於讀寫文件數據的空間。
API Level 4 以上需求 WRITE_EXTERNAL_STORAGE 權限。一般都是設備的 SD 卡。
Assets
APK 中只讀的受維護空間。用於放置不能/不該該被編譯的本地資源。
3.共享數據
ContentProvider作爲運用程序數據對外的接口,能夠向外部懇求露出任何類型的運用程序數據,包含運用程序各種資源(包含 assets 下的資源)











五。與體系交互
1.告訴
經過一切的體系控件,如 Service、 BroadcastReceiver 或許 Activity,都能夠將一個通
知發送到 NotificationManager。
Notification.Style展現更多的告訴款式
2.創立粘性操作
IntentService 會即將履行的使命(用 Intent表明)放到行列中,然後逐一處理每個懇求,全部處理完成後會終止自己。
3.啓用其他運用程序
a。讀取PDF文件
intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(file, "application/pdf");
b、與好友共享內容
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, update);
startActivity(Intent.createChooser(intent, "Share..."));
c。ShareActionProvider共享內容
依據用戶運用習氣,頻頻運用的選項會排到列表的最上方
android:showAsAction="ifRoom"
android:title="Share"
android:actionProviderClass="android.widget.ShareActionProvider"/>
MenuItem item = menu.findItem(R.id.menu_share);
ShareActionProvider provider = (ShareActionProvider) item.getActionProvider();
4.發動體系運用程序
a。瀏覽器
pageIntent.setAction(Intent.ACTION_VIEW);
pageIntent.setData(Uri.parse(“

























http://WEB_ADDRESS_TO_VIEW” ));
b。電話撥號器
dialIntent.setAction(Intent.ACTION_DIAL);
dialIntent.setData(Uri.Parse(“ tel:8885551234” );
c。地圖
mapIntent.setAction(Intent.ACTION_VIEW);
mapIntent.setData(Uri.parse(“ geo:latitude,longitude” ));
d。電子郵件
mailIntent.setAction(Intent.ACTION_SEND);
mailIntent.setType(“ message/rfc822” );
mailIntent.putExtra(Intent.EXTRA_EMAIL, new String[] {"[email protected]"}); 收件人
mailIntent.putExtra(Intent.EXTRA_CC, new String[] {"[email protected]"}); 抄送
mailIntent.putExtra(Intent.EXTRA_BCC, new String[] {"[email protected]"}); 密件抄送
mailIntent.putExtra(Intent.EXTRA_SUBJECT, "Email Subject");
mailIntent.putExtra(Intent.EXTRA_TEXT, "Body Text");
mailIntent.putExtra(Intent.EXTRA_STREAM, URI_TO_FILE); 附件
e、短音訊
smsIntent.setAction(Intent.ACTION_VIEW);
smsIntent.setType(“ vnd.android-dir/mms-sms” );
smsIntent.putExtra(“ address” , “ 8885551234” );
smsIntent.putExtra(“ sms_body” , “ Body Text” );
f。聯繫人挑選器
pickIntent.setAction(Intent.ACTION_PICK);
pickIntent.setData(URI_TO_CONTACT_TABLE);
g。Google Play
marketIntent.setAction(Intent.ACTION_VIEW);
marketIntent.setData(Uri.parse(“ market://details?id=PACKAGE_NAME_HERE” ));

























六。Android NDK和Renderscript
七。運用程序規劃指南
1.規劃經過濾的運用程序
2.規劃高性能的運用程序
優化代碼結構、少創立方針、減少浮點運算、運用 System.arraycopy()複製、
運用擴大版的循環(比方 for (Strings: strings) {})
3.規劃快速呼應的運用程序
留意運用線程
4.規劃無縫銜接的運用程序
不要丟掉數據,不要供給原始數據,發送告訴、用線程履行長時間操作、防止ANR、擴展體系主題、規劃運用多種分辨率的用戶界面、留意網絡判別、不要指定鍵盤佈局、節約用電。
5.規劃安全的運用程序









發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章