1、Android 怎樣和以PHP為服務端的後台通信
這樣理來解吧,,,PHP作為服務端的時候源,它就是做為一個o數據處理讀取的工作。
比如安桌端需要某位用戶的登錄信息正確不正確,
通過你制定好的類型,指定的方式向伺服器的PHP傳遞參數,PHP進行處理,讀取資料庫比對,返回指定類型的數據給安卓做為數據交互。。。
常用幾種類型JSON,XML,JSONP等等。。。
安卓和PHP你可以分開理解,它們交互的只是數據而已,,所以別把他們放一起來理解。。。
項目指定用JSON來做為數據類型,那你安卓就向PHP,,POST也好,什麼方式也好,項目需求來指定傳送方式,把數據傳送到指定的PHP處理控制器,PHP處理好,返回值。。。
這樣理解可以會更好理解:就跟AJAX+PHP差不多的道理。。。
2、android和php伺服器端交互問題
這個很熟哈,服務端應該將數據做成網頁,php發給客戶端一條json數據,數據核心是你的新聞頁的鏈接地址。客戶端解析數據,拿到url,用webview載入即可。至於載入的頁面不好看,是你的css或者js沒做好吧。內部鏈接的跳轉只要實現相應的方法即可
3、求帶有客戶端和php伺服器端的Android應用程序源代碼(能運行的),萬分感謝
mysql connector沒有現成android的port,可能需要自己port過去。 但是即便有,android直接連資料庫很不安全,建議是通過回和web伺服器交互答,web伺服器再請求mysql,業務邏輯寫在web伺服器上,作為webservice暴露給客...
4、android客戶端與php伺服器wamp的交互
php端隨便寫個介面,返回指定格式的數據,然後android客戶端進行處理就ok
5、安卓php伺服器~呢?
p
6、PHP作為服務端,安卓作為客戶端進行socket通信,如何實現?
通過請求返回數據啊!比如安卓可以通過URL請求頁面,然後PHP接到請求通知返數據給安卓,安卓接到數據之後在處理,就可以了!
7、php伺服器端怎樣接收來自android的json數據.android以post方式發送
php有一個函數叫_encode,數據從伺服器中拿過來之後,我是直接添加進array裡面來進行操作的,android認的JSONObject的格式是兩層大括弧包著的array。你將數據從資料庫中拿出來之後,組成associative array,用你的例子創建一個空array先~~$arr = array();$arr['test'] = 'json';$arr['mode'] = 'single';這樣加進一個叫$arr的數組(中文是叫這個的吧。。。orz。。。。)之後,你用另一個array再把它裝進去,操作是$arr2 = array('view' => $arr);這樣我們要的那個主要的包含數據的數組$arr就有了一個名字,於是android解析的時候就可以區別了,php輸出的時候,要這樣輸出:echo json_encode($arr2);於是就ok~~~會變成一個可以解析的JSONObject哦~~~~以上全部是我個人研究經驗。。。。也許有更簡單的方法,求高手指教~~~不過我們整個一個系統裡面凡是server和android軟體交互的數據我都是這么發過去的,表示JSONArray是更麻煩的東西,JSONObject神馬的,還是很簡單的哈~~~~~自己研究研究就出來了~~~
8、android客戶端的php伺服器怎麼搭建,php伺服器又是如何處理android客戶端發送的消息,本人小白一個請指導
個人理解,就是andorid應用調用伺服器端的PHP文件,PHP文件向伺服器傳送消息。
android代碼:
public class DoAddInformation extends Activity {
private ListView listView;
JSONArray jArray;
String result = null;
InputStream is = null;
StringBuilder sb = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_do_add_information);
Intent intent = getIntent();
String value = intent.getStringExtra("name");
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
listView = new ListView(this);
listView.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_expandable_list_item_1, getData(value)));
setContentView(listView);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.do_add_information, menu);
return true;
}
// 讀取數據方法
private List<String> getData(String name) {
Toast.makeText(DoAddInformation.this, name, Toast.LENGTH_LONG).show();
// 網路操作
List<String> data = new ArrayList<String>();
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("name", name));
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(
"遠程連接的網址+網頁");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
//----
} catch (Exception e) {
Log.e("log_tag", "Error in http connection" + e.toString());
}
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
is, "utf-8"), 8);
sb = new StringBuilder();
sb.append(reader.readLine() + "\n");
String line = "0";
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result = sb.toString();
} catch (Exception e) {
Log.e("log_tag", "Error converting result " + e.toString());
}
int ct_id;
String ct_name;
try {
jArray = new JSONArray(result);
JSONObject json_data = null;
for (int i = 0; i < jArray.length(); i++) {
json_data = jArray.getJSONObject(i);
ct_id = json_data.getInt("id");
ct_name = json_data.getString("name");
// tv.append(ct_name+" \n");
data.add(ct_name);
}
} catch (JSONException e1) {
} catch (ParseException e1) {
e1.printStackTrace();
}
return data;
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
Intent intent = new Intent();
intent.setClass(DoAddInformation.this, MainActivity.class);
startActivity(intent);
}
return super.onKeyDown(keyCode, event);
}
PHP代碼:
<?php
mysql_connect("地址","用戶","密碼");
mysql_query("SET NAMES utf8");
mysql_select_db("024b12");
//$sql=mysql_query("INSERT INTO test (id,name)VALUES (NULL , name='".$_REQUEST['name']."' )");
$count=mysql_query("select * from test ");
while($row=mysql_fetch_assoc($count))
{
$output[]=$row;
//echo $row['name'].'<br>';
}
print(json_encode($output));
mysql_close();
?>
9、如何選擇 Android 客戶端的後台伺服器,是 PHP 還是 Java web
php做前端來,java做後端淘寶是個例子伺服器端自前後分開是為了兩方面,雖然淘寶最開始並不想這樣做。。。先說下歷史,淘寶是最開始php全部,後來發現開銷太大,代碼效率不行,就直接把數據存儲啊,用戶通知啊就交給java實際上大部分網站都樂意採用這種前端php後端java或者C++這種形式,我是phpc++這種。優點,核心動作效率肯定高,c++java這種代碼效率奇高。比php腳本好很多。前端php,語法簡單,維護簡單,部署簡單,而且容易找到維護人員。總之就是開發快,維護成本低。大致了解了嗎?你說的h5+java實際上就是把java提到前台,不是不可以,維護和開發成本太高了啊。前端開發要經常搞,但是java做前台要調試、編譯部署還要重編譯。麻煩,人工開銷也大。不劃算如果是.net技術就更高成本了。光伺服器軟體一塊就要多少了。所以微軟的框架用的不多。國內外都不多,用.met的成本開發維護都麻煩。要氣硬體條件還苛刻。
10、android服務端使用php可以嗎
本人抄php新手,前段時間用php為公襲司做了app的服務端,純靠看文檔自學,談一點經驗,順便求大神指點。android和php交互 android和java交互都是一樣的,android寫出介面 通過http請求 php接收到請求之後 伺服器做處理 返回值 android接收到再顯示出來即可 原理其實是和html和php交互一樣的