導航:首頁 > 操作系統 > android用戶交互

android用戶交互

發布時間:2022-06-16 09:02:53

android 為什麼採用intent 進行數據交互

Android系統的一個重要特性就是一個應用程序可以調用另外一個應用程序來完成用戶的請求動作。比如你的應用程序需要給用戶顯示一個地理位置在地圖上,你不必在你的應用程序中實現地圖功能,而是創建一個顯示這個地理位置的Intent,發送出去,Android系統會啟動那些可以處理這個請求的應用程序。還比如:你用網路雲盤下載了一個pdf文檔,你在點擊打開這個文檔的時候網路雲盤是無法打開的,但是也許你系統上安裝有其他的能打開pdf文檔的閱讀器,這個時候就會彈出一個對話框,列舉了可以打開pdf文檔的應用程序,你可以自由選擇一個應用程序打開你下載的文檔。

使用隱式Intent:

隱式Intent不會指明要啟動的組件名稱,而是聲明執行的動作,動作指定了你想要做什麼事情,比如顯示(view),編輯(edit),發送(send),獲取一些東西(get something)等。Intent經常會附帶一些數據,比如你要查看的地址,發送郵件的內容等。數據形式依賴於你想要做什麼事情,數據可以是一個Uri,也可以是其他數據類型(基本數據類型或者對象)之一。數據不是必須的,你的Intent中可以不包含data。

② android 菜鳥問題。如何監聽某應用當前正在與用戶交互

你獲取 系統的ActivityManager 的對象 有一個函數 是獲取最近activity 其中第一個就是正在交互的應用的包名

③ 在交互細節上,Android 與 iOS 有哪些區別

在交互細節上有哪些區別,這問題回答起來估計就有難度了!
事先聲明,文長...... -_-'首先從導航模式開始,iOS 應用大多數情況,只提供單一的路徑。無論什麼樣的程序,都只有一個窗口,這個窗口用於放置程序的內容和功能,用戶不會意識到這個窗口。在 iOS 設備中,用戶覺得程序就是依次呈現的一屏又一屏圖像。

可以把一屏圖像想像成一個離散的視覺狀態或者模態。一個程序擁有的屏數或多或少,每一屏都是各種素材和控制項的組合,由此而衍生了iOS 應用內的多種導航模式,如:平鋪、列表及樹狀等。涉及到層級導航通過應用內左上角back鍵進行返回操作(圖1)。圖1

圖20

Android的Tab欄用於探索和切換不同視圖或功能,也可用於瀏覽不同分類的內容集合。主要有三種tab類型:
1. 滾動tab
2. 固定tab
3. 堆疊tab

兩個系統還有很多細節上的不同,像Android的邊界反饋效果與iOS的回拉效果、Activity Indicator的對比、dialog上確認鍵兩個系統分別在不同的位置等,以及iOS特有功能上的一些交互特性Passbook、iCloud、iAd等等......



根據android4,0規范與IOS規范,android與IOS主要的不容之處表現在:
1.android4.0包括三個虛擬按鍵:返回、home和最近任務,而IOS只有一個物理Home按鍵,返回按鈕一般放置在導航欄左上方
2.android的主要操作欄在屏幕上方包括:向上+圖標+頁面名稱+主要操作+更多(次要操作),主要操作欄還提供視圖切換功能。IOS包括導航欄、工具欄、tab欄,導航欄包括返回+標題+主要操作,工具欄包括一些次要操作,Tab欄承擔頁面視圖切換的功能。

④ 如何搭建一個與Android客戶端交互的伺服器

android客戶端和伺服器端是基於IntentService的,具體如下:
後台使用簡單的servlet,支持GET或POST。這個servlet最終返回給前台一個字元串flag,值是true或false,表示登錄是否成功。
然後在安卓的ADT上創建一個安卓項目,建立兩個Activity,分別作為登錄界面和登錄成功界面。
HTTP的訪問公共類,用於處理GET和POST請求。
IntentService服務,用於在後台以隊列方式處理耗時操作。
在AndroidManifest.xml中注冊IntentService。注意uses-permission節點,為程序開啟訪問網路的許可權。
登陸界面處理,注意按鈕監聽事件中,使用Intent將要傳遞的值傳給service。接收廣播類中,同樣使用Intent將要傳遞的值傳給下一個Activity。在onCreate()中,動態注冊接收廣播類的實例receiver。在接收廣播類中,不要使用完畢後忘記注銷接收器,否則會報一個Are you missing a call to unregisterReceiver()? 的異常。

⑤ android客戶端怎麼與伺服器交互

1、java伺服器建立至少一種服務webservices、servlet、socket
2、客戶端通過socket或者httpurlconnection的方式進行連接訪問
服務端:
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
resp.setContentType("text/html;charset=utf-8");
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");

PrintWriter out = resp.getWriter();
//用HTML格式給瀏覽器返回數據
out.println("<html>");
out.println("<head>");
out.println("<title>Tomcat Servlet測試</title>");
out.println("</head>");
out.println("<body>");
out.println("Hello,First Servlet!");
out.println("</body>");
out.println("</html>");
out.println("Hello,第一個Tomcat!!!");
out.close();
}
客戶端:
private String doGet(String url){
String responseStr = "";
try {
String name = nameEdit.getText().toString().trim();
String code = codeEdit.getText().toString().trim();
String getUrl = URL + "?NAME=" + name+"&"+"CODE=" + code;

HttpGet httpRequest = new HttpGet(getUrl);
HttpParams params = new BasicHttpParams();
ConnManagerParams.setTimeout(params, 1000);
HttpConnectionParams.setConnectionTimeout(params, 3000);
HttpConnectionParams.setSoTimeout(params, 5000);
httpRequest.setParams(params);

HttpResponse httpResponse = new DefaultHttpClient().execute(httpRequest);
final int ret = httpResponse.getStatusLine().getStatusCode();
if(ret == HttpStatus.SC_OK){
responseStr = EntityUtils.toString(httpResponse.getEntity(), HTTP.UTF_8);
}else{
responseStr = "-1";
}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return responseStr;
}

⑥ android平台的app 手機客戶端和後台伺服器怎麼進行數據交互的

首先不要管安卓端還是蘋果端,現在一般都是響應式的app,你放到安卓或者蘋果或者pc或者平板都是沒有問題的。一般採用的是http介面通訊,或者socket連接。具體你要去查資料找Demo了。而且現在主流是採用html5開發或者混合開發了。所以最好是伺服器提供appAPI介面,通過http訪問伺服器,獲取數據,數據一般是json,或者xml,拿到後解析數據就可以了,然後再用UI框架或者其他框架或者自定義的UI封裝下格式很漂亮了,至於cookie和session等,看你的習慣,網路驗證和簽名那些也自己看習慣,如果涉及到大數據,還需要引入第三方框架的,直接引入就可以了,不過推薦自己寫,防止侵權。都是很通用的。

⑦ android 和 ios 人機交互設計指南中最重要的幾點是什麼

android 和 ios 人機交互設計指南中最重要的幾點告訴你,希望你能理解:
這是針對於處於開發中的API或技術的初步文檔。雖然該文檔在技術精確度上經過了嚴格的審核,但並非最終版本,僅供蘋果開發者計劃的注冊會員使用。蘋果提供這份機要文檔的目的,是幫助你按照文中描述的方式對技術的選擇及界面的設計開發進行規劃。這些信息有可能發生變化,屆時,你的設計開發方式需要基於最終版本的操作系統及文檔進行相應的調整和測試。該文檔或許會隨著未來API或相關技術在的發展而進行更新。

審美的完整性
對app而言,審美的完整性並不是用來衡量app漂亮與否,或者塑造它的風格。而是通過app的外觀、交互行為和功能共同傳遞一致的,清晰明了的信息。

用戶關注app能否兌現此前承諾的功能,但是app的外觀和交互行為也潛在地影響著用戶。比如,一款幫用戶處理嚴肅任務的app,可通過使用標准控制項或可預見的交互方式讓裝飾性元素更為精妙和無打擾,從而讓用戶把注意力集中在對任務的處理上。

App清楚明了地把使用目的傳達給了用戶,這可以讓用戶更加信任它。不過,如果開發者通過入侵性的,輕佻的或者武斷的UI向用戶傳遞了混亂的信息,則用戶可能會質疑app的可靠性和可信賴度。

另一方面,對一款鼓勵沉浸式任務的的app,比如游戲,用戶期待一個迷人的外觀,和有趣、刺激以及鼓舞人心的發現。用戶並不期望在游戲中完成一系列嚴肅性的或者生產性的任務,但他們期望游戲的外觀和交互方式可以與游戲目的很好地融合在一起。

App需保持一致性
這樣方便用戶積累的知識和技巧在app各部分UI之間,在app之間進行遷移。一致性並不是盲目模仿其他app,也不是停滯不前,而是更關注用戶熟悉的標准和範例。

決定你的iOS app是否要遵守一致性的原則,考慮下邊幾個問題:
1.你的app是否符合iOS的標准?App 正確使用系統提供的控制項、視圖以及圖標了嗎?App以可靠方式整合設備的功能了嗎?
2.App自身是否一致?文本有沒有使用統一的術語和風格?相同圖標代表的意義是否一致?用戶在不同地方執行了相同的操作,用戶能否預測到將會發生什麼樣的結果?貫穿App的自定義UI元素的外觀和交互方式是否一致?
3.App現在的版本與此前的版本是否一致?條款和意義是否一致?App的基本概念和主要功能本質上有沒有發生變化?

直接操作
直接在屏幕上操作對象,而不使用單獨的控制項來操作,這樣用戶會更專注於當前的任務,他們也更容易理解操作產生的結果。

使用Multi-Touch 界面,用戶可通過雙指張開或者閉合來放大或者縮小圖片和內容區域。在游戲中,玩家可以直接移動屏幕上的對象或者與對象進行直接的交互。 在一款iOS app中,以下動作可為用戶提供直接操作的體驗:
1.旋轉或者移動設備以影響屏幕上的效果
2.使用手勢直接操控屏幕上的對象
3.可看到動作產生的直接結果或可視化結果

反饋
反饋是對用戶動作的承認,向他們展示操作的結果,更新他們任務的進程。內置iOS app為每位用戶的動作提供了可覺察的反饋。在用戶執行點擊操作的過程中,列表項目和控制項會持續幾秒鍾高亮狀態,通過控制項所處狀態短暫的改變來顯示進程的變化。

精巧的動畫可以給用戶有意義的反饋,可幫助用戶清楚地知曉動作產生的結果。比如,列表可以動態地展示新增一行的操作,從而幫助用戶跟蹤視覺上的變化。

聲音也可以給用戶有用的反饋,但不應該是僅有的反饋機制,因為用戶不能時刻傾聽他們的設備發出了什麼樣的聲音來反饋執行的動作。

隱喻
如果app中虛擬的對象和動作象徵著熟悉的用戶體驗,那麼不管這些體驗是深植於真實世界還是數字世界,用戶都可以快速掌握app的使用方法。在隱喻不涉及對象或動作局限性的情況下,App使用隱喻來暗示用法或者體驗再好不過。

由於用戶真實地與屏幕進行交互,因此iOS app的隱喻空間非常廣闊。iOS 中的隱喻包括:
1.移動分層的視圖來展現其下面的內容
2.在游戲中拖動、滑動或者輕掃對象
3.點擊開關,滑動滑塊以及旋轉選擇器
4.在雜志或書上進行翻頁

用戶控制
用戶應該發起和控制動作,而不是app。一款app可以啟發用戶的動作行為方法,或者提醒用戶危險後果,但是app撇開用戶做決策是錯誤的。app能給用戶他們想要的能力,也能幫他們規避不想要的結果,最好的app應該能在這兩者之間正確地平衡。

當交互行為和控制項是熟悉的,可預見的時候,用戶對app會更有控制感。當交互動作簡單直接的時候,用戶對app的動作也更容易理解和記憶。用戶期望在操作產生結果前有足夠多的機會來取消它們,並且他們期望有機會確認自己的目的,從而執行一個具有潛在破壞性的動作。最後,用戶期望能優雅地停止正在進行的操作。

⑧ android客戶端和伺服器端怎麼交互

android客戶端和伺服器端是基於IntentService的,具體如下:

  1. 後台使用簡單的servlet,支持GET或POST。這個servlet最終返回給前台一個字元串flag,值是true或false,表示登錄是否成功。

  2. 然後在安卓的ADT上創建一個安卓項目,建立兩個Activity,分別作為登錄界面和登錄成功界面。

  3. HTTP的訪問公共類,用於處理GET和POST請求。

  4. IntentService服務,用於在後台以隊列方式處理耗時操作。

  5. 在AndroidManifest.xml中注冊IntentService。注意uses-permission節點,為程序開啟訪問網路的許可權。

  6. 登陸界面處理,注意按鈕監聽事件中,使用Intent將要傳遞的值傳給service。接收廣播類中,同樣使用Intent將要傳遞的值傳給下一個Activity。在onCreate()中,動態注冊接收廣播類的實例receiver。在接收廣播類中,不要使用完畢後忘記注銷接收器,否則會報一個Are you missing a call to unregisterReceiver()? 的異常。




⑨ android,ios在人機交互方面各有什麼特點

iOS:
- 非常完善的 HIG,界面風格和交互方式比較統一,一般應用對於大部分用戶來說都能夠憑直覺上手使用;
- 非常注重細節,比如如果界面上輸入焦點自動進入輸入框會彈出鍵盤(Android上要人點擊才會觸發鍵盤),這種地方很多;
- 後台的多任務處理在用戶體驗和續航之間達成了相當好的平衡,基本用戶可以放心的去用,不用考慮應用後台前台的問題;
- 高質量應用數量多,同一個服務如果在不同移動平台上各有應用,那麼 iOS 的版本多半是最好的(至少是同樣好的);
Android:
- Notification 系統界面比 iOS 好;
- 支持自定義桌面,能滿足部分用戶的個性化需要;
- 支持模擬器應用,在 Android 平台上玩老游戲不錯 >_< ;
- 支持第三方輸入法,對中文輸入提升較大;
- 大多數 Google 自己的應用的用戶體驗都不錯。

⑩ android音樂播放器怎麼實現用戶交互

首先實現一個Service類,我們命名之為MainService,那麼我們應該如何啟動這個Service呢?啟動Service一個Service有兩種方法:一種是startService (Intent);另外一種是:bindService (Intent);
第一種啟動方式,適用於Service獨立完成任務,例如說一個下載,如果不需要暫停或者取消的話,可以這樣來做。但是,我們這是音樂播放應用,把MediaPlayer放在Service中執行播放,這樣的方式很難有暫停等交互。(其實也可以這樣做,例如每次交互操作都用startService來做,通過Intent把暫停等命令出入進去,進度條也可以通過廣播來發送出去,但是這樣做,感覺很醜陋,肯定不是常規的高效做法);
第二種啟動方式,可以在onServiceConnected中,獲得一個Service對象(可能不是一個Service對象,至少是一個可以接觸Service內部操作的句柄)。這樣,便可以輕松操作播放和接收進度通知。但是這種方式有弊端,一旦與之綁定的context退出,則綁定接觸,Service也會被回收(但是不會執行onDestory方法);
那麼是不是就只是簡單用第二種啟動方式?
當然不是這樣,在谷歌官方文檔中,有交代,這兩種方式並不沖突,而且十分適用於音樂播放類的應用。
原文如下:
A bound service
The service is created when another component (a client) calls bindService(). The client then communicates with the service through an IBinder interface. The client can close the connection by calling unbindService(). Multiple clients can bind to the same service and when all of them unbind, the system destroys the service. (The service does not need to stop itself.)
These two paths are not entirely separate. That is, you can bind to a service that was already started withstartService(). For example, a background music service could be started by calling startService() with anIntent that identifies the music to play. Later, possibly when the user wants to exercise some control over the player or get information about the current song, an activity can bind to the service by calling bindService(). In cases like this, stopService() or stopSelf() does not actually stop the service until all clients unbind.

簡單理解是:可以有多個client去綁定同一個Service,並且只有所有綁定的client都解除綁定以後,Service就會被destory掉,不需要執行stopSelf方法,同樣不會回調到onDestory方法;一個Client可以綁定一個已經start的Service,這樣綁定的話,要停止這個service,則必須先解除一切綁定的client,然後再調用stopService或者stopSelf方法。
得到官方的說法後,就可以放心大膽的寫代碼了。
為了方便,我們定義一個自己的Application類——BeApplication,來執行相關操作。
在這個Application類的onCreate方法中,我們先啟動一個Service,然後綁定這個Service。注意,讓自己的BeApplication能夠運行,要在manifest文件中的<application/>標簽下,定義android:name=」包名加我們application類的類名」。
現在寫我們用音樂播放的Service類——MainService,同樣記得在manfest文件中聲明這個Service。
注意之前在BeApplication中的onServiceConnected方法,我們在那個方法中,取得了由MainService中的onBind方法返回的IBinder對象,並通過這個對象,我們在BeApplication中拿到這個用於播放音樂的Service,這樣以來,與Service交互容易的多。
也許你會問,這樣已經拿到service對象了,那有何必要去start這個service呢?
注意MainService中的onStartCommend方法,此方法返回了一個int常量,對於這個常量,官方有這樣的解釋:
START_STICKY
If the system kills the service after onStartCommand() returns, recreate the service and call onStartCommand(), but do not redeliver the last intent. Instead, the system calls onStartCommand() with a null intent, unless there were pending intents to start the service, in which case, those intents are delivered. This is suitable for media players (or similar services) that are not executing commands, but running indefinitely and waiting for a job.

閱讀全文

與android用戶交互相關的資料

熱點內容
robinhood加密交易條件 瀏覽:310
衛生間解壓方法 瀏覽:450
u盤如何做加密文件放照片 瀏覽:327
文件夾自己加了exe 瀏覽:256
小豬cms直播系統源碼 瀏覽:876
山東廣電雲伺服器 瀏覽:350
javadate與mysqldate 瀏覽:242
javalong比較 瀏覽:9
加密大師看不見加密文件 瀏覽:305
想做一個業余程序員 瀏覽:791
python選出行 瀏覽:247
cat命令windows 瀏覽:908
python算術游戲 瀏覽:530
常微分方程第二版pdf 瀏覽:23
phpJava學多久 瀏覽:722
php博客畢業設計 瀏覽:794
資料庫編程pdf 瀏覽:905
靜態文件伺服器騰訊雲 瀏覽:848
怎麼讓安卓手機運行蘋果軟體 瀏覽:116
共同好友的演算法 瀏覽:574