浣跨敤 Android(安卓)瀹炵幇鑱旂綉
Android 鑱旂綉鍔熻兘
Android 鍩轰簬 Linux庐 鍐呮牳锛屽寘鍚竴缁勪紭绉€鐨勮仈缃戝姛鑳姐€傚鏋滃皻鏈畨瑁?Android SDK锛岄偅涔堥渶瑕?涓嬭浇 瀹冩墠鑳藉疄璺垫湰鏂囩殑绀轰緥銆?
琛?1 灞曠ず浜?Android SDK 涓竴浜涗笌缃戠粶鏈夊叧鐨勫寘銆?
琛?1. Android SDK 缃戠粶鍖?/strong>
java.net | 鎻愪緵涓庤仈缃戞湁鍏崇殑绫伙紝鍖呮嫭娴佸拰鏁版嵁鍖咃紙datagram锛塻ockets銆両nternet 鍗忚鍜屽父瑙?HTTP 澶勭悊銆傝鍖呮槸涓€涓鍔熻兘缃戠粶璧勬簮銆傛湁缁忛獙鐨?Java 寮€鍙戜汉鍛樺彲浠ョ珛鍗充娇鐢ㄨ繖涓啛鎮夌殑鍖呭垱寤哄簲鐢ㄧ▼搴忋€? |
java.io | 铏界劧娌℃湁鎻愪緵鏄惧紡鐨勮仈缃戝姛鑳斤紝浣嗘槸浠嶇劧闈炲父閲嶈銆傝鍖呬腑鐨勭被鐢卞叾浠?Java 鍖呬腑鎻愪緵鐨?socket 鍜岃繛鎺ヤ娇鐢ㄣ€傚畠浠繕鐢ㄤ簬涓庢湰鍦版枃浠讹紙鍦ㄤ笌缃戠粶杩涜浜や簰鏃朵細缁忓父鍑虹幇锛夌殑浜や簰銆?/td> |
java.nio | 鍖呭惈琛ㄧず鐗瑰畾鏁版嵁绫诲瀷鐨勭紦鍐插尯鐨勭被銆傞€傚悎鐢ㄤ簬涓や釜鍩轰簬 Java 璇█鐨勭鐐逛箣闂寸殑閫氫俊銆? |
org.apache.* | 琛ㄧず璁稿涓?HTTP 閫氫俊鎻愪緵绮剧‘鎺у埗鍜屽姛鑳界殑鍖呫€傚彲浠ュ皢 Apache 瑙嗕负娴佽鐨勫紑婧?Web 鏈嶅姟鍣ㄣ€? |
android.net | 闄ゆ牳蹇?java.net.* 绫讳互澶栵紝鍖呭惈棰濆鐨勭綉缁滆闂?socket銆傝鍖呭寘鎷?URI 绫伙紝鍚庤€呴绻佺敤浜?Android 搴旂敤绋嬪簭寮€鍙戯紝鑰屼笉浠呬粎鏄紶缁熺殑鑱旂綉鏂归潰銆? |
android.net.http | 鍖呭惈澶勭悊 SSL 璇佷功鐨勭被銆? |
android.net.wifi | 鍖呭惈鍦?Android 骞冲彴涓婄鐞嗘湁鍏?WiFi锛?02.11 鏃犵嚎 Ethernet锛夋墍鏈夋柟闈㈢殑绫汇€傚苟涓嶆槸鎵€鏈夎澶囬兘閰嶅浜?WiFi 鍔熻兘锛岀壒鍒槸 Android 鍦?Motorola 鍜?LG 绛夋墜鏈哄埗閫犲晢鐨?鈥滅炕鐩栨墜鏈衡€?棰嗗煙鑾峰緱浜嗘垚鍔熴€? |
android.telephony.gsm | 鍖呭惈鐢ㄤ簬绠$悊鍜屽彂閫?SMS锛堟枃鏈級娑堟伅鐨勭被銆備竴娈垫椂闂村悗锛屽彲鑳戒細寮曞叆棰濆鐨勫寘鏉ユ潵涓洪潪 GSM 缃戠粶鎻愪緵绫讳技鐨勫姛鑳斤紝姣斿 CDMA 鎴?android.telephony.cdma 绛夌綉缁溿€?/td> |
涓婅〃骞舵病鏈夊垪鍑烘墍鏈夊寘锛屼絾鏄彲浠ヨ鎮ㄦ竻妤氬湴鎰忚瘑鍒拌骞冲彴鐨勫己澶у姛鑳姐€備笅涓€灏忚妭灏嗕粙缁嶄竴浜涚畝鍗曠殑缃戠粶绀轰緥銆?
|
|
绠€鍗曠殑缃戠粶绀轰緥
涓轰簡婕旂ず灏?Android 杩炴帴鍒颁竴涓綉缁滄湁澶氫箞绠€鍗曪紝杩欎釜绀轰緥灏嗗睍绀哄浣曚粠 Web 椤甸潰鍙戦€佹枃鏈€傚彲浠?涓嬭浇 鏈緥鐨勬簮浠g爜銆傚浘 1 灞曠ず浜嗗簲鐢ㄧ▼搴忕殑瀹為檯浣跨敤銆?
鍥?1. 浠?Web 椤甸潰鑾峰彇鏂囨湰
鏈妭鎻愪緵浜嗘瀯寤虹ず渚嬪簲鐢ㄧ▼搴忔墍闇€鐨勪唬鐮併€傛垜浠皢棣栧厛鏌ョ湅 UI 閮ㄥ垎锛岀劧鍚庝粙缁嶄笌缃戠粶鏈夊叧鐨勪唬鐮併€?
鍏辨湁涓変釜 UI 鍏冪礌锛?
- EditText 璁╃敤鎴疯兘澶熻繘鍏ヤ竴涓?Web 椤甸潰锛堝浘 1 鍜?娓呭崟 2 鎵€绀虹殑 http://developer.android.com锛夈€?
- 浣跨敤涓€涓寜閽憡璇夌▼搴忓彇鍥?Web 椤甸潰鏂囨湰銆?
- 妫€绱㈠洖鏁版嵁鍚庯紝瀹冨皢鏄剧ず鍦?TextView 涓€?
娓呭崟 1 灞曠ず浜?main.xml 鏂囦欢锛岃繖鏄搴旂敤绋嬪簭鐨勫畬鏁?UI 甯冨眬銆?
娓呭崟 1. main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" ><EditText android:layout_height="wrap_content"android:id="@+id/address"android:layout_width="fill_parent"android:text="http://google.com"></EditText><Button android:id="@+id/ButtonGo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="go!" ></Button><TextView android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#ffffff" android:textColor="#000000"android:id="@+id/pagetext" /></LinearLayout> |
娓呭崟 2 灞曠ず浜嗘湰绀轰緥浣跨敤鐨?Java 浠g爜銆?
娓呭崟 2. GetWebPage.java
package com.msi.getwebpage;import android.app.Activity;import android.os.Bundle;// used for interacting with user interfaceimport android.widget.Button;import android.widget.TextView;import android.widget.EditText;import android.view.View;// used for passing data import android.os.Handler;import android.os.Message;// used for connectivityimport java.io.BufferedReader;import java.io.InputStreamReader;import java.net.URL;import java.net.URLConnection;public class GetWebPage extends Activity { /** Called when the activity is first created. */ Handler h;@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final EditText eText = (EditText) findViewById(R.id.address); final TextView tView = (TextView) findViewById(R.id.pagetext); this.h = new Handler() { @Override public void handleMessage(Message msg) { // process incoming messages here switch (msg.what) { case 0: tView.append((String) msg.obj); break; } super.handleMessage(msg); } }; final Button button = (Button) findViewById(R.id.ButtonGo); button.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { try{ tView.setText(""); // Perform action on click URL url = new URL(eText.getText().toString()); URLConnection conn = url.openConnection(); // Get the response BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line = ""; while ((line = rd.readLine()) != null) { Message lmsg; lmsg = new Message(); lmsg.obj = line; lmsg.what = 0; GetWebPage.this.h.sendMessage(lmsg); } } catch (Exception e){ } } }); }} |
杩欎簺浠g爜鍙互鍒嗚В鎴愪竴浜涘父瑙佺殑閮ㄥ垎銆傝繖閲屼娇鐢ㄤ竴浜涢噸瑕侊紙蹇呴渶锛夌殑瀵煎叆璇彞鏉ユ伆褰撳湴寮曠敤 UI銆佹暟鎹紶閫掍互鍙婂簲鐢ㄧ▼搴忎腑浣跨敤鐨勪笌缃戠粶鏈夊叧鐨勭被銆傛墍鏈変笌缃戠粶鐩稿叧鐨勪唬鐮佸嚭鐜板湪 OnClickListener
鐨?OnClick
鏂规硶涓€傚湪閫夋嫨 鍥?1 鎵€绀虹殑鏍囩涓?go!
鐨勬寜閽箣鍚庤皟鐢ㄨ繖浜涗唬鐮併€?
URL
鍜?URLConnection
绫诲叡鍚屾彁渚涗笌鐢ㄦ埛鎵€閫夌殑 Web 绔欑偣鐨勮繛鎺ャ€?code>BufferedReader 鐨勪竴涓疄渚嬭礋璐d粠 Web 绔欑偣杩炴帴涓鍙栦紶鍏ョ殑鏁版嵁銆傛瘡璇诲彇涓€琛屼唬鐮侊紝鏂囨湰灏辫闄勫姞鍒颁竴涓?TextView銆傛暟鎹苟娌℃湁鐩存帴鎸囧畾缁?TextView锛堜絾鏄湪鏈緥涓彲浠ワ級銆傛垜浠紩鍏ヤ簡涓€绉嶈璁℃ā寮忥紝鍗冲垱寤轰竴涓秷鎭璞″苟灏嗚瀵硅薄鍙戦€佸埌涓€涓鐞嗙▼搴忕殑瀹炰緥銆傝繖鏄洿鏂?UI 鐨勪竴绉嶆瘮杈冨彲鍙栫殑鏂规硶锛屽鍙兘闇€瑕佸悓鏃惰繍琛屽涓嚎绋嬬殑搴旂敤绋嬪簭鑰岃█灏ゅ叾濡傛銆?
鍦ㄧず渚嬩腑锛孉ndroid 搴旂敤绋嬪簭涓?HTTP Web 鏈嶅姟鍣ㄨ繘琛岄€氫俊锛屾瘮濡?Apache 鎴?Internet Information Server锛圛IS 浣嶄簬 Microsoft庐 鏈嶅姟鍣ㄤ笂锛夈€傚鏋滃簲鐢ㄧ▼搴忕洿鎺ヤ笌 TCP socket 瀵硅瘽锛岄偅涔堟偍灏嗕互涓嶅悓鐨勬柟寮忓疄鐜板簲鐢ㄧ▼搴忋€傛竻鍗?3 鎵€绀虹殑浠g爜鐗囨灞曠ず浜嗗彟涓€绉嶄笌杩滅▼鏈嶅姟鍣ㄤ氦浜掔殑鏂瑰紡銆傝繖涓竻鍗曡瀹炵幇涓轰竴涓崟鐙殑绾跨▼銆?/p>
娓呭崟 3. Daytime 瀹㈡埛鏈?/strong>
public class Requester extends Thread { Socket requestSocket; String message; StringBuilder returnStringBuffer = new StringBuilder(); Message lmsg; int ch; @Override public void run() { try { this.requestSocket = new Socket("remote.servername.com", 13); InputStreamReader isr = new InputStreamReader(this.requestSocket.getInputStream(), "ISO-8859-1"); while ((this.ch = isr.read()) != -1) { this.returnStringBuffer.append((char) this.ch); } this.message = this.returnStringBuffer.toString(); this.lmsg = new Message(); this.lmsg.obj = this.message; this.lmsg.what = 0; h.sendMessage(this.lmsg); this.requestSocket.close(); } catch (Exception ee) { Log.d("sample application", "failed to read data" + ee.getMessage()); } } } |
涓庡墠闈㈢殑绀轰緥绫讳技锛屼笂闈㈢殑浠g爜浣跨敤娑堟伅鍜屽鐞嗙▼搴忔柟娉曟潵灏嗘暟鎹彂閫佺粰璋冪敤鑰咃紝璋冪敤鑰呭皢鏇存柊 UI 骞舵墽琛屽悗缁鐞嗐€備笌 娓呭崟 1 涓嶅悓锛岃繖涓緥瀛愬苟娌℃湁涓?HTTP 鏈嶅姟鍣ㄩ€氫俊锛屽洜姝ゆ病鏈変娇鐢?URLConnection
绫汇€傜浉鍙嶏紝浣跨敤浜嗚緝浣庣骇鐨?Socket
绫诲湪绔彛 13 鎵撳紑涓庤繙绋嬫湇鍔″櫒鐨勫熀浜庢祦鐨?socket 杩炴帴銆傜鍙?13 鏄吀鍨嬬殑 鈥淒aytime Server鈥?搴旂敤绋嬪簭銆?
Daytime Server 鎺ュ彈浼犲叆鐨?socket 杩炴帴骞朵互鏂囨湰鐨勫舰寮忓皢鏃ユ湡鍜屾椂闂村彂閫佺粰璋冪敤 socket銆備竴鏃﹀彂閫佸畬鏁版嵁锛屾湇鍔″櫒灏嗗叧闂?socket銆傜ず渚嬩篃灞曠ず浜?InputStreamReader
鐨勪娇鐢ㄥ拰涓€涓壒瀹氬瓧绗︾紪鐮併€?/p>
鍙戦€佹枃鏈秷鎭槸鎮ㄩ渶瑕佷娇鐢?Android 瀹屾垚鐨勫彟涓€椤逛换鍔°€傛竻鍗?4 灞曠ず浜嗕竴涓ず渚嬨€?
娓呭崟 4. 鍙戦€佷竴鏉℃枃鏈秷鎭?/strong>
void sendMessage(String recipient,String myMessage) { SmsManager sm = SmsManager.getDefault(); sm.sendTextMessage("destination number",null,"hello there",null,null);} |
鍙戦€佹枃鏈秷鎭潪甯哥畝鍗曘€傞鍏堬紝浣跨敤闈欐€佹柟娉?getDefault()
鑾峰彇瀵?SmsManager 鐨勫紩鐢ㄣ€傜劧鍚庤皟鐢?sendTextMessage
鏂规硶銆傚弬鏁颁负锛?/p>
涓嶇鏄繛鎺ュ埌 Web 椤甸潰杩樻槸杩炴帴鍒板畾鍒?TCP 搴旂敤绋嬪簭锛孉ndroid 骞冲彴閮藉彲浠ョ珛鍗冲弽搴斿苟涓旇兘澶熸彁渚涘府鍔┿€傚 娓呭崟 4 鎵€绀猴紝鍙戦€佹枃鏈秷鎭潪甯哥畝鍗曘€傞€氳繃浣跨敤鍙€夌殑 intent 鍙傛暟锛岀敋鑷冲彲浠ュ湪娑堟伅琚彂閫佸苟浜や粯鍚庨噰鍙栨搷浣溿€傝繖鏄叾浠栫Щ鍔ㄥ钩鍙版墍涓嶅叿澶囩殑寮哄ぇ鐗规€с€?/p>
更多相关文章
- 代码中设置drawableleft
- android 3.0 隐藏 系统标题栏
- Android开发中activity切换动画的实现
- Android(安卓)学习 笔记_05. 文件下载
- Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
- 技术博客汇总
- android 2.3 wifi (一)
- AndRoid Notification的清空和修改
- Android中的Chronometer