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>

涓婅〃骞舵病鏈夊垪鍑烘墍鏈夊寘锛屼絾鏄彲浠ヨ鎮ㄦ竻妤氬湴鎰忚瘑鍒拌骞冲彴鐨勫己澶у姛鑳姐€備笅涓€灏忚妭灏嗕粙缁嶄竴浜涚畝鍗曠殑缃戠粶绀轰緥銆?




鍥為〉棣?/span>

绠€鍗曠殑缃戠粶绀轰緥

涓轰簡婕旂ず灏?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>

鎺ユ敹鑰呯殑鎵嬫満鍙?/strong>
鍖呮嫭鍖哄彿銆?
鏈嶅姟涓績鐢佃瘽鍙风爜
浣跨敤 null 鍊艰〃绀烘偍鍚屾剰浣跨敤榛樿鏈嶅姟涓績鏉ュ鐞嗘秷鎭€傞櫎浜嗛潪甯哥壒娈婄殑搴旂敤绋嬪簭澶栵紝鍑犱箮鎵€鏈夊簲鐢ㄧ▼搴忛兘瀵硅繖涓弬鏁颁娇鐢?null 鍊笺€?
娑堟伅鐨勫疄闄呭唴瀹?/strong>
灏嗘秷鎭暱搴︿繚鎸佸湪 160 瀛楄妭浠ュ唴锛岄櫎闈炴偍鍙互鎺ュ彈灏嗘暟鎹垎涓哄涓秷鎭彂閫併€?
鏈敹鍒版秷鎭?intent
濡傛灉娑堟伅琚彂閫佹垨鍑虹幇浜嗛敊璇紝閭d箞灏嗗紑濮嬩竴涓彲閫夌殑 intent銆傚鏋滀笉闇€瑕佽繖绫婚€氱煡锛岄偅涔堝彲浠ヤ负姝ゅ弬鏁颁紶閫掍竴涓?null 鍊笺€傦紙鍙傝 鍙傝€冭祫鏂?/span> 浜嗚В鏈夊叧 intent 鍜?Android 鍩烘湰鍘熺悊鐨勬洿澶氫俊鎭級銆?
鏀跺埌娑堟伅 intent
褰撴敹鍒板彂閫佺‘璁ゅ悗锛屽皢寮€濮嬩竴涓彲閫夌殑 Intent銆傚鏋滃彂閫侀€氱煡涓嶉噸瑕佺殑璇濓紝閭d箞鍙互涓鸿繖涓弬鏁颁紶閫掍竴涓?null 鍊笺€?

涓嶇鏄繛鎺ュ埌 Web 椤甸潰杩樻槸杩炴帴鍒板畾鍒?TCP 搴旂敤绋嬪簭锛孉ndroid 骞冲彴閮藉彲浠ョ珛鍗冲弽搴斿苟涓旇兘澶熸彁渚涘府鍔┿€傚 娓呭崟 4 鎵€绀猴紝鍙戦€佹枃鏈秷鎭潪甯哥畝鍗曘€傞€氳繃浣跨敤鍙€夌殑 intent 鍙傛暟锛岀敋鑷冲彲浠ュ湪娑堟伅琚彂閫佸苟浜や粯鍚庨噰鍙栨搷浣溿€傝繖鏄叾浠栫Щ鍔ㄥ钩鍙版墍涓嶅叿澶囩殑寮哄ぇ鐗规€с€?/p>

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. 浅谈innodb_autoinc_lock_mode的表现形式
  2. 线上MYSQL同步报错故障处理方法总结(必看
  3. innodb_index_stats导入备份数据时报错表
  4. innodb_flush_method取值方法(实例讲解)
  5. Mysql GTID Mha配置方法
  6. MySQL PXC构建一个新节点只需IST传输的方
  7. MySQL5.7不停业务将传统复制变更为GTID复
  8. 查看当前mysql使用频繁的sql语句(详解)
  9. 对MySql经常使用语句的全面总结(必看篇)
  10. MySQL一个语句查出各种整形占用字节数及