androidinterface
A. android 介面和抽象的區別
抽象類:
含有abstract修飾符的class
即為抽象類,
abstract類不能創建實例對象,
含有abstract的方法的類必須定義為abstract
class
,
abstract
class
里的方法不必是抽象的,
抽象來中定義抽象方法必須放在具體子類中實現,所以,不能有抽象的構造方法或抽象的靜態方法,如果子類沒有實現抽象父類中的所有方法,那麼,子類也必須定義為抽象類。
介面:
介面(interface)可以說成是抽象類的特例。介面中的所有方法都必須是抽象的,介面中的方法定義默認為public
abstract
。介面中的變數是全局常量,即public
static
final修飾的。
語法上的區別:
1,抽象類里可以有構造方法,而介面內不能有構造方法。
2,抽象類中可以有普通成員變數,而介面中不能有普通成員變數。
3,抽象類中可以包含非抽象的普通方法,而介面中所有的方法必須是抽象的,不能有非抽象的普通方法。
4,抽象類中的抽象方法的訪問類型可以是public
,protected和默認類型,但介面中的抽象方法只能是public類型的,並且默認即為public
abstract類型。
5,抽象類中可以包含靜態方法,介面內不能包含靜態方法。
6,抽象類和介面中都可以包含靜態成員變數,抽象類中的靜態成員變數的訪問類型可以任意,但介面中定義的變數只能是public
static類型,並且默認為public
static類型。
7,一個類可以實現多個介面,但只能繼承一個抽象類。
再補充點兩者在應用上的區別:
B. 新手刷機求助.android bootloader Interface
android bootloader interface需要手機在bootloader界面才能安裝吧?試試你的手機讓其進入bootloader模式。
C. android 介面有哪些作用
1. 多個 Interface 可以同時被一個類繼承的特性可以彌補 java 單繼承的缺點,增強其可擴展性;
2. 定義公共介面和公共回調方法可以規范代碼;
D. 如何用interface傳遞數據 androidd
對於依賴於操作系統的程序,客戶程序除了包含一個程序入口外,還需要和相關系統服務一起運行,以完成指定的任務。比如,Win32程序需要和GUI系統服務一起實現帶有可視窗口的功能;X
程序員需要在不同的Activity之間傳遞數據,然而,這個問題本身就有問題。所謂「傳遞消息」一般是指多個線程之間,而Activity本身並不是線程,ActivityThread才是一個線程,即UI線程。同一個程序中的多個Activity都由ActivityThread進行調用,Activity本身只是一個Java類而已,就像Rect、Trigle類一樣,如果有人問「Rect類和Trigle類之間如何傳遞消息」,你會不會覺得有點奇怪?
事實上,如果要在兩個類中傳遞數據,方法可以有很多。
方法一:可以先實例化某個類,獲得該類的引用,當其他類需要該對象的內部數據時,可以直接通過該引用去訪問該類的內部數據。
方法二:對於A、B兩個類之間,可以先實例化一個第三方類C,然後兩個類都可以把需要傳遞的數據存入C中,或從C中取出。
這些方法理論上都可以用在Activity類之間傳遞數據。然而,與普通類傳遞數據有所不同,普通類的實例化都是程序員顯式完成的,而Activity類的實例化卻是由Framework完成的,程序員只能使用startActivity()方法來告訴Framework去運行哪個Activity,這就意味著程序員不能得到Acitivity對象的引用,那麼就不能直接訪問該對象的內部數據。解決的辦法是使用Activity.getApplication()函數,該函數能夠返回一個Application對象,該Application對象在該程序中是唯一的,同一程序中的不同Activity調用該函數所返回的Application對象是相同的,該對象的名稱可以在AndroidManifest.xml中指定。一旦獲取了該Application對象,就可以藉助該對象,在不同的Activity之間傳遞數據。
除此之外,Framework本身也提供了標準的Activity之間傳遞數據的方法,即Intent類。該類作為startActivity()的參數,僅用於在啟動Activity時傳遞給目標Activity,同時,如果調用startActivityForResult(),目標Activity在結束後,也會返回一個Intent對象給原Activity。
另外,從設計理念的角度來看,Android認為,兩個Activity如果要共享數據,可以通過Preference Storage或者文件、資料庫進行,同時,在一般情況下,設備上只會有一個Activity在運行,因此,多個Activity之間傳遞數據也不是必需的。
E. android adb interface是干什麼的
Android ADB Interface是一個支持android和PC連接的程序,通過它Windows就可以自動識別並安裝驅動軟體。
Androidposite安卓套件,ADBandroid調試橋,Interface介面。
出現這樣的問題是因為ADB驅動沒有載入,或者驅動程序未更新造成的。
(5)androidinterface擴展閱讀:
出現android adb interface不能連接的解決方法如下:
下載並安裝Android SDK,然後下載並安裝JAVA JDK。Android SDK安裝完畢後在開始菜單里會出現程序組,選擇SDK Manager,然後下載並安裝默認選擇的幾個包。
在".android"文件夾里的adb_usb.ini文件最後加上"0x1949", 如果找不到這個文件自己建一個然後填上0x1949。
參考資料:網路-Android
F. android 進程間的通信(IPC)方式有哪些
Android為了屏蔽進程的概念,利用不同的組件[Activity、Service]來表示進程之間的通信!組件間通信的核心機制是Intent,通過Intent可以開啟一個Activity或Service,不論這個Activity或Service是屬於當前應用還是其它應用的。
一、Intent包含兩部分:
1、目的[action]--要往哪裡去
2、內容[category、data]--路上帶了些什麼,區分性數據或內容性數據
二、Intent類型:
1、顯式--直接指定消息目的地,只適合同一進程內的不同組件之間通信
new Intent(this,Target.class)
2、隱式--AndroidMainifest.xml中注冊,一般用於跨進程通信
new Intent(String action)
IPC機制:有了Intent這種基於消息的進程內或進程間通信模型,我們就可以通過Intent去開啟一個Service,可以通過Intent跳轉到另一個Activity,不論上面的Service或Activity是在當前進程還是其它進程內即不論是當前應用還是其它應用的Service或Activity,通過消息機制都可以進行通信!
G. 三星手機連接電腦提示安裝android adb interface
三星手機連接電腦提示安裝android adb interface步驟:
1下載並安裝Android SDK,,然後下載並安裝JAVA JDK
2. Android SDK安裝完畢後在開始菜單里會出現程序組, 選擇SDK Manager, 然後下載並安裝默認選擇的幾個包.(就是Platform-tools, Android 4.0以及usb driver)
3. 在Kindle的".android"文件夾里的adb_usb.ini文件, 並在最後加上"0x1949" (引號不用加). 如果找不到這個文件自己建一個然後填上0x1949應該也是可行的
4. 修改Android SDK安裝目錄下usb_driver里的android_winusb.inf文件. 在inf文件里[Google.NTx86]與[Google.NTamd64]兩段後添加;
Kindle Fire%SingleAdbInterface% = USB_Install, USBVID_1949&PID_0006%CompositeAdbInterface% = USB_Install, USBVID_1949&PID_0006&MI_01%SingleBootLoaderInterface% = USB_Install, USBVID_1949&PID_0FFF
5. Kindle fire連接USB,disconnect,打開我的電腦,右鍵屬性,設備管理器,選到Android ADB Interface,右鍵更新驅動程序,從指定位置安裝,選到android_winusb.inf所在的文件夾,確定安裝,大概需要20秒,請耐心等待。之後,就可以成功root的Kindle Fire了。
H. Android 進程間通信的幾種實現方式
Android 進程間通信的幾種實現方式
主要有4種方式:
這4種方式正好對應於android系統中4種應用程序組件:Activity、Content Provider、Broadcast和Service。
主要實現原理:
由於應用程序之間不能共享內存。為了在不同應用程序之間交互數據(跨進程通訊),AndroidSDK中提供了4種用於跨進程通訊的方式進行交互數據,實現進程間通信主要是使用sdk中提供的4組組件根據實際開發情況進行實現數據交互。
詳細實現方式:
Acitivity實現方式
Activity的跨進程訪問與進程內訪問略有不同。雖然它們都需要Intent對象,但跨進程訪問並不需要指定Context對象和Activity的 Class對象,而需要指定的是要訪問的Activity所對應的Action(一個字元串)。有些Activity還需要指定一個Uri(通過 Intent構造方法的第2個參數指定)。 在android系統中有很多應用程序提供了可以跨進程訪問的Activity,例如,下面的代碼可以直接調用撥打電話的Activity。
IntentcallIntent=newIntent(Intent.ACTION_CALL,Uri.parse("tel:12345678");
startActivity(callIntent);
Content Provider實現方式
Android應用程序可以使用文件或SqlLite資料庫來存儲數據。Content Provider提供了一種在多個應用程序之間數據共享的方式(跨進程共享數據)
應用程序可以利用Content Provider完成下面的工作
1. 查詢數據
2. 修改數據
3. 添加數據
4. 刪除數據
Broadcast 廣播實現方式
廣播是一種被動跨進程通訊的方式。當某個程序向系統發送廣播時,其他的應用程序只能被動地接收廣播數據。這就象電台進行廣播一樣,聽眾只能被動地收聽,而不能主動與電台進行溝通。在應用程序中發送廣播比較簡單。只需要調用sendBroadcast方法即可。該方法需要一個Intent對象。通過Intent對象可以發送需要廣播的數據。
Service實現方式
常用的使用方式之一:利用AIDL Service實現跨進程通信
這是我個人比較推崇的方式,因為它相比Broadcast而言,雖然實現上稍微麻煩了一點,但是它的優勢就是不會像廣播那樣在手機中的廣播較多時會有明顯的時延,甚至有廣播發送不成功的情況出現。
注意普通的Service並不能實現跨進程操作,實際上普通的Service和它所在的應用處於同一個進程中,而且它也不會專門開一條新的線程,因此如果在普通的Service中實現在耗時的任務,需要新開線程。
要實現跨進程通信,需要藉助AIDL(Android Interface Definition Language)。Android中的跨進程服務其實是採用C/S的架構,因而AIDL的目的就是實現通信介面。
總結
跨進程通訊這個方面service方式的通訊遠遠復雜於其他幾種通訊方式,實際開發中Activity、Content Provider、Broadcast和Service。4種經常用到,學習過程中要對沒種實現方式有一定的了解。