導航:首頁 > 操作系統 > android閱讀sdk

android閱讀sdk

發布時間:2024-07-02 15:37:56

android SDK 各版本之間有什麼差異

一、Android1、1
2008 年9月發布的Android第一版
二、Android1、5 Cupcake (紙杯蛋糕)
2009年4月30日,官方1、5版本(Cupcake 紙杯蛋糕)的Android發布。主要的更新如下:
1、拍攝/播放影片,並支持上傳到Youtube
2、支持立體聲藍牙耳機,同時改善自動配對性能
3、最新的採用WebKit技術的瀏覽器,支持復制/貼上和頁面中搜索
4、GPS性能大大提高
5、提供屏幕虛擬鍵盤
6、主屏幕增加音樂播放器和相框widgets
7、應用程序自動隨著手機旋轉
8、簡訊、Gmail、日暦,瀏覽器的用戶介面大幅改進,如Gmail可以批量刪除郵件
9、相機啟動速度加快,拍攝圖片可以直接上傳到Picasa
10、來電照片顯示
三、Android1、6 Donut (甜甜圈)
2009年9月15日,1、6(Donut 甜甜圈)版本軟體開發工具包發布。主要的更新如下:
1、重新設計的Android Market手勢
2、支持支持CDMA網路
3、文字轉語音系統(Text-to-Speech)
4、快速搜索框
5、全新的拍照介面
6、查看應用程序耗電
7、支持虛擬私人網路(VPN)
8、支持更多的屏幕解析度。
9、支持OpenCore2媒體引擎
10、新增面向視覺或聽覺困難人群的易用性插件
四、Android2、0/2、0、1/2、1 Eclair (松餅)
2009年10月26日,2、0(Eclair 松餅)版本軟體開發工具包發布。主要的更新如下:
1、優化硬體速度
2、"Car Home"程序
3、支持更多的屏幕解析度
4、改良的用戶界面
5、新的瀏覽器的用戶介面和支持HTML5
6、新的聯系人名單
7、更好的白色/黑色背景比率
8、改進Google Maps3、1、2
9、支持Microsoft Exchange
10、支持內置相機閃光燈
11、支持數碼變焦
12、改進的虛擬鍵盤
13、支持藍牙2、1
14、支持動態桌面的設計
五、Android2、2/2、2、1Froyo(凍酸奶)
2010年5月20日,2、2(Froyo 凍酸奶)版本軟體開發工具包發布。主要的更新如下:
1、整體性能大幅度的提升
2、3G網路共享功能。
3、Flash的支持。
4、App2sd功能。
5、全新的軟體商店。
6、更多的Web應用API介面的開發。
六、Android2、3 Gingerbread (姜餅)
2011年2月2日, 3、0(Honeycomb 蜂巢)版本主要更新如下:
1·優化針對平板
2·全新設計的UI增強網頁瀏覽功能
3、·n-app purchases功能
七、Android3、1 Honeycomb (蜂巢)
2011年5月11日在Google I/O開發者大會宣布發布,版本主要更新如下:
1、Honeycomb 蜂巢(改進3、0BUG)
2、經過優化的Gmail電子郵箱;
3、全面支持GoogleMaps
4、將Android手機系統跟平板系統再次合並從而方便開發者。
5、任務管理器可滾動,支持USB 輸入設備(鍵盤、滑鼠等)。
6、支持 Google TV、可以支持XBOX 360無線手柄
7、widget支持的變化,能更加容易的定製屏幕widget插件。
八、Android3、2 Honeycomb (蜂巢)
2011年7月13日發布,版本更新如下:
1、支持7英寸設備
2、引入了應用顯示縮放功能.
九、Android4、0 Ice Cream 「冰激凌三明治」
2011年10月19日 在香港發布,4、0(Ice Cream Sandwich 冰激凌三明治)版本主要更新如下:
1、藍色主題
2、接近於桌面版的Chrome Lite瀏覽器,有離線閱讀,同步Chrome書簽,新的標簽樣式等。
3、截圖功能
4、更強大的圖片編輯功能
5、自帶照片應用堪比Instagram,可以加濾鏡、加相框,進行360度全景拍攝,照片還能根據地點來排序
6、Gmail加入手勢、離線搜索功能,UI更強大。
7、新功能People:以聯系人照片為核心,界面偏重滑動而非點擊,集成了Twitter、Linkedin、Google+等通訊工具。有望支持用戶自定義添加第三方服務。
8、新增流量管理工具,可具體查看每個應用產生的流量。
9、正在運行的程序可以像電腦一樣的互相切換
10、人臉識別功能
11、系統優化、速度更快
12、支持虛擬按鍵,手機可以不再擁有任何按鍵
13、專為3D優化的驅動
14、平板電腦和智能手機通用
十、Android 4、3 Jelly Bean「果凍豆」
2013年7月15日 發布,4、3( Jelly Bean 果凍豆)版本主要更新如下:
1、Nexus 裝置在 Google Play 播放影片時,可開啟 Fraunhofer Cingo 提供的虛擬環繞音效效果。
2、 在撥號盤上輸入數字,會自動建議符合名字或號碼的聯系人。此功能可開啟或關閉。
3、 屏幕觸控輸入的演算法做了改進,讓輸入文字變得更容易。
4、 游戲手把或游戲桿的輸入延遲(latency)降低。
5、 無需開啟 Wi-Fi,即可利用 Wi-Fi 做定位的輔助。
6、 支持 BluetoothSmart(先前稱為 Bluetooth Low Energy),Nexus 4 與新 Nexus 7 現在已經是 Bluetooth Smart Ready 裝置。
7、 支持藍牙 AVRCP 1.3 版,可在車用音響上顯示歌名。
8、 「已停用」應用程序分頁:在「設定」→「應用程序」中新增「已停用」分頁,可統一管理已停用的應用程序。
9、 支持 OpenGL ES 3.0,可提供下一代畫質更佳的 3D 游戲體驗。
10、支持新 Nexus 7 與 Nexus 10 的屏幕無線傳輸功能,可將屏幕畫面無線投射到電視上。
11、支持更多語言:南非語(Afrikanns)、阿姆哈拉語(Amharic)、印地語(Hindi)、斯瓦希里語(Swahili)、祖魯語(Zulu)。
12、主畫面、設定、電話、聯系人應用程序可支持右向左寫語言(RTL,如希伯來語、阿拉伯語)
13、支持「限制賬號」,可設定讓裝置只能使用特定應用程序與內容。
14、簡化設定精靈,讓首次開機的設定更容易
15、在鎖定畫面切換用戶賬號的速度更快


㈡ 怎麼查看Android sdk中的源碼demo,apidemo跟Android的版本有關系...

1. Custom Dialog
Android支持自定義窗口的風格:
1)首先在資源裡面建立style的value;
example:
drawable/filled_box.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" />
2)設置當前activity的屬性,兩種方式:1.在manifest文件中給指定的activity增加屬性
android:theme="@android:style/Theme.CustomDialog"。2.在程序中增加語句setTheme(R.style.Theme_CustomDialog);
PS1:如果只是將Acticity顯示為默認的Dialog, 跳過第一步,只需要在manifest文中增加屬性:android:theme="@android:style/Theme.Dialog"或者在程序中增加setTheme(android.R.style.Theme_Dialog).
PS2:其他創建Dialog的方法:創建app.Dialog類或者創建app.AlertDialog類。
Next Study:能不能在Activity已經打開以後動態修改當前Activity的風格?
在測試中發現,在onCreate()事件中增加setTheme(),必須在setContentView()之前,否則指定的Style不能生效
2.Custom Title
Android除了可以為指定的Activity設置顯示風格,此外也可以為指定的Activity設置一些特效,比如自定義Title,沒有Title的Activity或者增加一個ICON等。
有意思的一點是,這些特效並不是你想設置的時候就行設置,你需要在Activity顯示之前向系統申請要顯示的特效,這樣才能在下面的程序中為這些特效進行設置。(這樣是不是多此一舉有待研究)
為一個Activity設置自定義Title的流程:
1)為自定義的Title建立一個layout(custom_title_1.xml)
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/screen"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="vertical">
<textview android:id="@+id/left_text" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:text="Left" />
<textview android:id="@+id/right_text" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="Right" />
2)為activity設定自定義Title特效並指定Title的layout:
在onCreate()事件中增加:
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.custom_title);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title_1);
這三條語句的次序不能顛倒,依次為申請特效,創建view,設置特效屬性。其中requestWindowFeature等價於getWindow().requestFeature()
3)在需要修改Title的地方,獲取left_text或者right_text進行設置即可。
Next Study:Activity的其他顯示特效
Window還有其他一些feature,比如FEATURE_CONTEXT_MENU,FEATURE_NO_TITLE,FEATURE_LEFT_ICON等,有待繼續學習研究。
1. Forwarding
這個實現很簡單,就是啟動新的Activity或者Service後,增加一個finish()語句就可以了,這個語句會主動將當前 activity從歷史stack中清除,這樣back操作就不會打開當前activity。
做這個實驗的時候,發現開發Android程序需要注意的一點小問題:增加新的activity時,不能只增加一個class,一定要記得要在manifest文件中增加該activity的描述。(這個簡單的功能,未來google應該給增加吧)
「android:name中的點」意義:首先manifest會有一個默認指定的package屬性,比如指定為"com.android.sample",如果我們增加的activity的實現也在這個package下,則android:name為實現的類名,這個類名前加不加點都沒有關系,都會自動找到該實現,比如實現為forwardtarget,則android:name寫成forwardtarget或者.forwardtarget都可以。唯一有區別的是,如果activity的實現是在默認包的子包裡面,則前面這個點就尤為重要,比如activity的實現是com.android.sample.app.forwardtarget,則android:name必須寫成.app.forwardtarget或者com.android.sample.app.forwardtarget。如果只寫app.forwardtarget,通常編輯器就會提示該類找不到,但不巧的是,你恰好有一個類是app.forwardtarget,那你只有等著運行時報錯吧。
所以建議養成習慣只要是默認package下面的類,無論是否是在子包裡面,前面都要加上一個點,現在當前實現是在默認package下。
2.Persistent
這里的持久化其實就是本地配置文件的讀寫,實現方法是通過Activity.getPreferences(int)獲取SharedPreferences對象,然後操作配置文件的讀寫,值得注意的是以下幾點:
1)Activity.getPreferences(int mode)等價於Content.getSharedPreferences(String filename,int mode),這裡面的filename就是當前class的名稱,例如在PersistentTest類中調用getPreferences(0),等價於調用getPreferences("PersistentTest", 0)。如不想用class name做文件名,可以直接調用getSharedPreferences方法,自己指定配置文件的名稱。
2)mode值的定義:
MODE_PRIVATE = 0,表示當前配置文件為私有文件,只有當前的應用可以訪問。
MODE_WORLD_READABLE = 1,表示當前配置文件可以被其他應用讀取。
MODE_WORLD_WRITEABLE = 2,表示當前配置文件可以被其他應用寫入。
如果配置文件又想被人讀又想被寫人,怎麼辦呢,呵呵,當然是MODE_WORLD_READABLE&MODE_WORLD_WRITEABLE,真的懷疑設計android的人以前是做C/C++的。
3)SharedPreferences是個很有意思的實現,讀取數據的時候,直接用get方法就可以了,可是寫數據的時候,沒用給set方法,呵呵,第一次用這個類一定會以為只能讀不能寫。如果要寫數據的話,需要用editor()方法(為什麼不是getEditor()呢?看來設計的人一定是做C/C++的)獲取SharedPreferences.Editor類,然後用這個類的put方法寫文件。為什麼要這樣做呢?好久沒有看設計模式了,不知道他採用是哪種高級模式,等以後有時間,看看它的實現再做研究吧。
4)在這個實現中,讀文件是放在onResume()中,寫文件是在onPause()中,為什麼要這么做呢,看字面意思,好像只有恢復和暫停的時候才會被執行,那程序第一次創建的時候會讀文件嗎?來讓我們看看Activity的生命周期,就會發現這么做的巧妙之處:
看到了吧,在Activity運行的前後,無論狀態怎麼轉移,onResume()和onPause()一定會被執行,與其說實現的巧妙,還不如贊一下這個生命周期的設計的巧妙,這個巧妙不是說說而已,有時間的話,看看MFC中一個windows或者dialog的生命周期,你就知道這個巧妙的含義了,我們可以省多少的事情啊!所以值得記住的是,在android中想在運行前後必須要執行的語句,就應該放在onResume()和onPause()中。
4)最後說一個對android小不爽的地方:drawable,什麼鬼東西啊!在res/drawable放一個文件,訪問的時候是drawable/name,如果在values裡面建立一個drawable的變數,訪問的時候也是drawable/name,例如在drawable目錄下放入一個red.xml文件,訪問的時候是@drawable/red,如果建立一個drawable的變數red,訪問也是@drawable/red,這完全就是兩個東西啊,雖然最新的編輯器會提示重名,但查找的時候真的很不方便啊,尤其是drawable變數,可以放在一個abc.xml中 。

這個實驗描述了Activity之間的另外一種切換方式,通常Activity的切換方式是Activity1通過startActivity切換到Activity2, Activity2再通過startActivity切換到其他的Activity,但是有的時候我們需要啟動一個新的Activity獲取用戶的輸入,然後返回到原來的Activity,比如activity是一個通訊錄列表,我們通過一個增加按鈕打開另一個activity讓用戶輸入新的聯系人,輸入後再返回通訊錄列表。
這個時候,我們可以通過startActivityForResult(Intent, int)方法啟動新的Activity,新的Activity通過setResult(int, Intent)方法返回老的Activity,這個時候會觸發老的Activity的onActivityResult(int, int, Intent)方法,我們可以在這個方法的實現中處理返回事件。
startActivityForResult(Intent, int),其中int為Request Code,也是onActivityResult的第一個參數,通常一個Activity不僅僅只觸發一個獲取事件,比如上面提到的通訊錄,可能會有一個增加聯系人的事件,也可能會有一個修改聯系人或給指定聯系人增加一個電話的事件,但我們只有一個onActivityResult方法,所以我們需要這么一個Request Code區分是哪個事件的返回,這個值是用戶自己定義的,而且完全是用戶自己進行管理,很人性化。
setResult(int, Intent),其中的int是Result Code,它表示的是返回的狀態,也是onActivityResult的第二個參數。這個參數需要特別注意一下,android為這個值提供了三個默認的常量。我們先看前兩個,RESULT_CANCELED和RESULT_OK,這個從字面上很好理解,一個是運行取消,另一個是運行成功返回,當用戶按BACK鍵時,Result Code就是RESULT_CANCELED。但我們看看他們分別對應的值,就會發現奇怪的地方,RESULT_CANCELED=0,RESULT_OK=-1!!!在其他系統中OK通常都是1,而在android,它是-1,這是為什麼呢,來讓我們看看第三個默認的常量,RESULT_FIRST_USER=1,明白了吧!android把所有大於0的數字都留給了用戶自己,多麼人性化啊!但是要注意了,如我前面所說,大部分系統都喜歡將大於0作為正確返回,小於0作為錯誤返回,所以很多人(包括我),喜歡用if(result > 0)表示返回成功,這個在android是不通行的,一定要特別注意!
此外在這個程序中,我們可以看到另外一件事情,關於TextView,如果我們要改變裡面的內容,比如增加新的欄位,需要將其設為可變長的,方法是mTextView.setText(mTextView.getText(), TextView.BufferType.EDITABLE);
修改內容的方法是通過TextView.getText()獲取Editable對象,然後Editable對象進行編輯就可以了,Editable類似於StringBuffer,編輯之後會直接反映到TextView裡面,不需要再setText();
2. SaveRestoreState
完全沒有看懂這個Demo要演示什麼效果,好像是onSaveInstanceState以及TextView的android:freezesText屬性有關,但具體效果沒有研究出來,留到以後再研究吧
3.Translucent
Android為透明效果提供了內置的Theme: android:style/Theme.Translucent,只需要把當前的activity的theme設置為這個Theme就可以達到完全透明的效果。
如果要半透明的話,可以增加一個繼承該Theme的style即可,實現如下:
#e0000000
此外API Demo中提供了另一個實例,不用繼承內置的Theme,可以自己完全創建一個新的style,實現透明效果,同時可以加一些其他特效,比如模糊化等,

閱讀全文

與android閱讀sdk相關的資料

熱點內容
商務文件夾搭配 瀏覽:564
lombok編譯速度慢 瀏覽:153
java象棋代碼 瀏覽:159
求補集的演算法 瀏覽:915
如何刪除伺服器審計日誌 瀏覽:197
DAYZ怎麼更新伺服器 瀏覽:178
雲末伺服器如何下載 瀏覽:847
app表示什麼意思 瀏覽:708
java項目文件都是編譯前文件 瀏覽:399
求生之路跟好友聯機選什麼伺服器 瀏覽:770
電腦文件夾照片怎麼製作影集 瀏覽:597
Android50虛擬按鍵 瀏覽:202
壓縮機氣體冷卻器 瀏覽:745
proteus模擬軟體與keil編譯 瀏覽:464
如何讀pdf 瀏覽:873
單片機如何驅動電機 瀏覽:213
特效vb源碼 瀏覽:922
不屬於演算法語言 瀏覽:341
計算機ar演算法大賽 瀏覽:360
三菱fx3u編程線纜 瀏覽:698