⑴ android、ios客戶端和伺服器通信一般使用什麼方式,各有什麼優缺點
1、從網路協議上來看,就http方式和socket方式。
2、http方式開發起來效率想對要高一點,但是對於推送這種來說,想對要難做點,因為http是短連接。socket這種方式開發要長,調試略微麻煩,但是做推送想對簡單,可以建立一個長連接。
3、Web Service服務其實也是基於HTTP協議(它基於SOAP協議,而SOAP又是基於HTTP協議)。
最大缺點我覺得是Web Service實在是太厚重了,特別對於移動端來說,WSDL是基於XML,XML已經夠厚重了,WSDL還有一些頭信息,更加厚重。
而且JSON + HTTP的方式,相對來說就非常輕量級了,JSON格式數據本生就是javascript中的數據或者對象,所以在網路傳輸中具有非常明顯優勢,可以說本來就是網路傳輸用的,毫無違和感嘛:)
還有一個不能算缺點的缺點:目前移動端HTTP網路庫多的要死,Web Service我所知道就是ksoap2,而且非常的難用。。。
⑵ android開發 如何獲得listview裡面的內容
我給你一個地址吧!你去看看!http://ajava.org/course/j2me/16894.html!另外向你求教下,你的android程序調用web服務是怎麼實現的?我是用ksoap2 連接的webservice,取到的數據在用正則表達式過濾才能顯示,我感覺我的方式不對,但是找不到合適的,不知道可否給一下你的資料郵箱[email protected]!謝謝了!
final ArrayList<HashMap<String, Object>> users = new ArrayList<HashMap<String, Object>>();
for (int i = 0; i < 10; i++) {
HashMap<String, Object> user = new HashMap<String, Object>();
user.put("img", R.drawable.user);
user.put("username", "姓名(" + i+")");
user.put("age", (20 + i) + "");
users.add(user);
}
SimpleAdapter saImageItems = new SimpleAdapter(this,
users,// 數據來源
R.layout.user,//每一個user xml 相當ListView的一個組件
new String[] { "img", "username", "age" },
// 分別對應view 的id
new int[] { R.id.img, R.id.name, R.id.age });
// 獲取listview
ListView myListView =((ListView) findViewById(R.id.users));
myListView.setAdapter(saImageItems);
myListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
// TODO Auto-generated method stub
String aa=(String) users.get(arg2).get("username");
Toast.makeText(ListViewTest.this, "你點擊了第"+arg2+"項的"+aa,Toast.LENGTH_SHORT).show();
}
});
⑶ android 除了sqlite還能使用什麼資料庫
android除了sqlite資料庫,還是可以使用mysql資料庫,使用步驟如下:
1. 關閉mysql伺服器的防火牆。
2. 加入MySQL的jdbc包,添加到libs文件夾內。
3.ADT和SDK為16及16以下,17以上的不能訪問。
4.手機和mysq伺服器l互相ping通。
5.添加網路許可權 :<uses-permissionAndroid:name="android.permission.INTERNET" />
6.在Thread中連接訪問mysql,防止ANR。
7.設置mysql允許遠程連接。
代碼如下:
packagecom.mayi.mysql_test;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importcom.mysql.jdbc.Connection;
importcom.mysql.jdbc.Statement;
importandroid.os.Bundle;
importandroid.app.Activity;
importandroid.util.Log;
importandroid.view.View;
importandroid.view.View.OnClickListener;
{
privatestaticfinalStringTAG="MainActivity";
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.select).setOnClickListener(newOnClickListener(){
@Override
publicvoidonClick(Viewv){
select();
}
});
}
publicvoidselect(){
try{
//調用Class.forName()方法載入驅動程序
Class.forName("org.gjt.mm.mysql.Driver");
System.out.println("成功載入MySQL驅動!");
Stringurl="jdbc:mysql://192.168.1.113:3306/test";//JDBC的URL
Connectionconn;
conn=(Connection)DriverManager.getConnection(url,"mayi","123456");
Statementstmt=(Statement)conn.createStatement();//創建Statement對象
System.out.println("成功連接到資料庫!");
Stringsql="select*fromperson";//要執行的SQL
ResultSetrs=stmt.executeQuery(sql);//創建數據對象
System.out.println("編號"+" "+"姓名"+" "+"年齡");
while(rs.next()){
System.out.print(rs.getInt(1)+" ");
System.out.print(rs.getString(2)+" ");
System.out.print(rs.getString(3)+" ");
System.out.print(rs.getString(4)+" ");
System.out.println();
}
rs.close();
stmt.close();
conn.close();
}catch(Exceptione)
{
Log.e(TAG,e.getMessage());
e.printStackTrace();
}
}
}
⑷ 如何提升Android開發效率
筆者在經歷了多個Android開發項目之後,個人積累也從別處學習了很多在Android開發中非常實用的小經驗。下面從中選擇了最實用的16條,分享給大家。
1.TextView中的getTextSize返回值是以像素(px)為單位的,而setTextSize()是以sp為單位的.所以如果直接用返回的值來設置會出錯,解決辦法是用setTextSize()的另外一種形式,可以指定單位:
1
2
3
4
<span style="font-size:16px;">setTextSize(int unit, int size)
TypedValue.COMPLEX_UNIT_PX : Pixels
TypedValue.COMPLEX_UNIT_SP : Scaled Pixels
TypedValue.COMPLEX_UNIT_DIP : Device Independent Pixels</span>
2.在繼承自View時,繪制bitmap時,需要將圖片放到新建的drawable-xdpi中,否則容易出現繪制大小發生改變。
3.在文字中加下劃線: textView.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG)。
4.scrollView是繼承自frameLayout,所以在使用LayoutParams時需要用frameLayout的。
5.在Android中幾種網路編程的方式:
(1)針對TCP/IP的Socket、ServerSocket
(2)針對UDP的DatagramSocket、DatagramPackage。這里需要注意的是,考慮到Android設備通常是手持終端,IP都是隨著上網進行分配的。不是固定的。因此開發也是有 一點與普通互聯網應用有所差異的。
(3)針對直接URL的HttpURLConnection
(4)Google 集成了Apache HTTP客戶端,可使用HTTP進行網路編程。針對HTTP,Google集成了Appache Http core和httpclient 4版本,因此特別注意Android不支持 httpclient 3.x系列,而且目前並不支持Multipart(MIME),需要自行添加httpmime.jar
(5)使用Web Service。Android可以通過開源包如jackson去支持Xmlrpc和Jsonrpc,另外也可以用Ksoap2去實現Webservice
(6) 直接使用WebView視圖組件顯示網頁。基於WebView 進行開發,Google已經提供了一個基於chrome-lite的Web瀏覽器,直接就可以進行上網瀏覽網頁。
6.TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta)
這個是我們最常用的一個構造方法,
float fromXDelta:這個參數表示動畫開始的點離當前View X坐標上的差值;
float toXDelta, 這個參數表示動畫結束的點離當前View X坐標上的差值;
float fromYDelta, 這個參數表示動畫開始的點離當前View Y坐標上的差值;
float toYDelta)這個參數表示動畫開始的點離當前View Y坐標上的差值;
如果view在A(x,y)點 那麼動畫就是從B點(x+fromXDelta, y+fromYDelta)點移動到C 點 (x+toXDelta,y+toYDelta)點。
7.android提供了幾種在其他線程中訪問UI線程的方法
⑸ android調用webservice介面都有什麼方式
android調用webservice介面的方法是利用第三方jar包完成。
1、首先如果想在Android平台上調用WebService需要依賴於第三方類庫:ksoap2 而在Android平台上,使用的是ksoap2 Android,一個高效,輕量級的SOAP開發包