eoe客戶端源碼剖析
1. 《GoogleAndroid開發入門與實戰》pdf下載在線閱讀全文,求百度網盤雲資源
《Google Android開發入門與實戰》(姚尚朗)電子書網盤下載免費在線閱讀
鏈接:
書名:Google Android開發入門與實戰
作者:姚尚朗
豆瓣評分:6.3
出版社:人民郵電出版社
出版年份:2009 年6月
頁數:400
內容簡介:
本書內容上覆蓋了用Android開發的大部分場景,從Android基礎介紹、環境搭建、SDK介紹、Market使用,到應用剖析、組件介紹、實例演示等方面。從技術實現上,講解了5個Android平台下的完整綜合實例及源代碼分析,分別是RSS閱讀器、基於Google Map的個人GPS、豆瓣網(Web 2.0)客戶端、在線音樂播放器、手機信息助手。
本書注重對實際動手能力的指導,在遵循技術研發知識體系的嚴密性同時,在容易產生錯誤、不易理解的環節配以了詳實的開發情景截圖,並將重要的知識點和經驗技巧以「小實驗」、「小知識」的活潑形式呈現給讀者。在程序實例的講解方面,將實例安插在Android開發的精髓知識章節,這為初學者學習與實踐結合提供了很好的指導。.
本書配套有300多分鍾的全程開發視頻光碟,指導讀者快速、無障礙地學通Android實戰開發技術。..
本書適合具備一定軟體開發經驗,想快速進入Android開發領域的程序員;具備一些手機開發經驗的開發者和Android開發愛好者學慣用書;也適合作為相關培訓學校的Android培訓教材。
特點:
* 第一本國內開發團隊原創的Android圖書
* 完全基於Android最新的SDK1.5
* 著名台灣技術專家高煥堂、Google Android工程師何峰、InfoQ站長霍泰穩鼎力推薦!
* 全書除了大量小型案例之外還包含了5個Android平台下的完整商業實例及源碼分析,分別是RSS閱讀器、基於GoogleMap的個人GPS、豆瓣客戶端、在線音樂播放器、手機信息助手
* 隨書附贈的光碟中包含389分鍾的詳細教學視頻以及Android開發必備開發資源,部分教學視頻免費下載地址:http://www.eoeandroid.com/viewthread.php?tid=328
* 讀者對於此書內容的疑問可以訪問http://www.eoeandroid.com社區,作者團隊將會及時解答
作者簡介:
本書由國內Android知名專業開發團隊eoeMobile團隊傾心撰寫。eoeMoblie團隊國內最早一批專注於Android開發的專業團隊,目前團隊已經在Google Market上有超過5款的作品,而且取得了可喜的下載量。國內著名網站豆瓣網的Android客戶端(eoeDouban)也是由此團隊製作。關於此團隊的更多信息請訪問:http://www.eoemobile.com.關於圖書的進展,可以訪問http://www.eoeandroid.com 社區
作者簡介:
靳岩:
網名:海陽|haiyangjy
blog: http://www.haiyangjy.com
姚尚朗:
網名:iceskysl
blog: http://iceskysl.1sters.com
歡迎大家就書或者Android的問題和我們進行直接的交流。
社區支持:http://www.eoeandroid.com/
2. 為什麼 aidl 總是出現null
建立AIDL服務要比建立普通的服務復雜一些,具體步驟如下:
(1)在Eclipse Android工程的java包目錄中建立一個擴展名為aidl的文件。該文件的語法類似於Java代碼,但會稍有不同。詳細介紹見實例52的內容。
(2)如果aidl文件的內容是正確的,ADT會自動生成一個Java介面文件(*.java)。
(3)建立一個服務類(Service的子類)。
(4)實現由aidl文件生成的Java介面。
(5)在AndroidManifest.xml文件中配置AIDL服務,尤其要注意的是,<action>標簽中android:name的屬性值就是客戶端要引用該服務的ID,也就是Intent類的參數值。
建立AIDL服務
本例中將建立一個簡單的AIDL服務。這個AIDL服務只有一個getValue方法,該方法返回一個String類型的值。在安裝完服務後,會在客戶端調用這個getValue方法,並將返回值在TextView組件中輸出。建立這個AIDL服務的步驟如下:
(1)建立一個aidl文件。在Java包目錄中建立一個IMyService.aidl文件。IMyService.aidl文件的位置如圖
IMyService.aidl文件的內容如下:
Java代碼:
package eoe.demo;
interface IMyService {
String getValue();
}
IMyService.aidl文件的內容與Java代碼非常相似,但要注意,不能加修飾符(例如,public、private)、AIDL服務不支持的數據類型(例如,InputStream、OutputStream)等內容。
(2)如果IMyService.aidl文件中的內容輸入正確,ADT會自動生成一個IMyService.java文件。讀者一般並不需要關心這個文件的具體內容,也不需要維護這個文件。關於該文件的具體內容,讀者可以查看本節提供的源代碼。
(3)編寫一個MyService類。MyService是Service的子類,在MyService類中定義了一個內嵌類(MyServiceImpl),該類是IMyService.Stub的子類。MyService類的代碼如下:
Java代碼:
package eoe.demo;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.os.RemoteException;
public class MyService extends Service {
public class MyServiceImpl extends IMyService.Stub {
@Override
public String getValue() throws RemoteException {
return "Android/OPhone開發講義";
}
}
@Override
public IBinder onBind(Intent intent) {
return new MyServiceImpl();
}
}
在編寫上面代碼時要注意如下兩點:
IMyService.Stub是根據IMyService.aidl文件自動生成的,一般並不需要管這個類的內容,只需要編寫一個繼承於IMyService.Stub類的子類(MyServiceImpl類)即可。
onBind方法必須返回MyServiceImpl類的對象實例,否則客戶端無法獲得服務對象。
(4)在AndroidManifest.xml文件中配置MyService類,代碼如下:
Java代碼:
<service android:name=".MyService" >
<intent-filter>
<action android:name="net.blogjava.mobile.aidl.IMyService" />
</intent-filter>
</service>
下面來編寫客戶端的調用代碼。首先新建一個Eclipse Android工程(ch08_aidlclient),並將自動生成的IMyService.java文件連同包目錄一起復制到ch08_aidlclient工程的src目錄中,如圖所示。
調用AIDL服務首先要綁定服務,然後才能獲得服務對象,代碼如下:
Java代碼:
package net.blogjava.mobile;
import net.blogjava.mobile.aidl.IMyService;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle; import android.os.IBinder;
import android.view.View; import android.view.View.OnClickListener;
import android.widget.Button; import android.widget.TextView;
public class Main extends Activity implements OnClickListener {
private IMyService myService = null;
private Button btnInvokeAIDLService;
private Button btnBindAIDLService;
private TextView textView;
private ServiceConnection serviceConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
// 獲得服務對象
myService = IMyService.Stub.asInterface(service);
btnInvokeAIDLService.setEnabled(true);
}
@Override
public void onServiceDisconnected(ComponentName name) {
}
};
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.btnBindAIDLService:
// 綁定AIDL服務
bindService(new Intent("net.blogjava.mobile.aidl.IMyService"), serviceConnection, Context.BIND_AUTO_CREATE);
break;
case R.id.btnInvokeAIDLService:
try {
textView.setText(myService.getValue());
// 調用服務端的getValue方法
} catch (Exception e) {
}
break;
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnInvokeAIDLService = (Button) findViewById(R.id.btnInvokeAIDLService);
btnBindAIDLService = (Button) findViewById(R.id.btnBindAIDLService); btnInvokeAIDLService.setEnabled(false);
textView = (TextView) findViewById(R.id.textview);
btnInvokeAIDLService.setOnClickListener(this);
btnBindAIDLService.setOnClickListener(this);
}
}
轉載僅供參考,版權屬於原作者。祝你愉快,滿意請採納哦
3. 請問做一個像微信這樣的手機app需要投資多少錢
做一個像微信這樣的手機app需要投資多少錢
如今,不少企業都想擁有屬於自己企業或產品的手機APP,但其中最困擾企業主的問題就是:開發一款手機APP到底需要多少錢?
簡單點來說,要視手機APP的需求及質量而言,價位一般在幾千到十幾萬左右,更高端的價格更高。
定製款:定製款是指APP的功能全部重新開發,過程比較繁瑣,需要美工、策劃、APP開發(前台/客戶端/手機端)、後台程序員等工種協同完成,大型的、功能復雜的APP甚至需要數十人的團隊。
由於APP的功能和設計都是定製的,因此價格會高些。定製款的開發時間與開發價格是成正比的,開發時間長,大約在兩三個月甚至不定的周期里才能完成,而費用大概在幾萬甚至十幾萬左右。
因此,想要知道開發一款手機APP需要花費多少錢,企業主首先必須把APP的詳細需求和功能告知APP開發公司,開發公司才能報出一個合理的價格。
二、手機APP平台不同,製作成本也不一樣
現在市面上流行的手機APP製作平台主要有兩種一般包括兩種系統:安卓系統(Android)和蘋果系統(IOS)。
一般來說,製作蘋果系統的手機APP軟體費用要比安卓平台的貴一些,因為蘋果公司對蘋果平台的封閉性和手機APP開發語言Objective-C的難度,都讓APP開發者加大了蘋果系統手機APP開發的難度。
三、APP製作成本包含參與人員的工資
通常情況下,開發一款APP需要產品經理、客戶端工程師、後端工程師和UI設計師各一名,這已經是製作手機APP應用軟體比較精簡的配置了,所以這些參與人員的工資也是包含在APP製作成本當中的。這些工作人員的月薪加起來可能都會超過4、5萬元。
四、APP開發公司的所在地
需要注意的是,同樣實力的APP開發公司,在不同的城市也會導致APP的成本費用高一些,如在北京、深圳和上海等地的開發公司開發成本費用就會比較高,因為當地開發人員的薪資和其他支出相對更高。
4. 應屆生找android開發工作
這取決於想從事哪方面的開發。
1、ANROID的開發分為:
1)、Android客戶端應用程序
如新浪微博、網銀客戶端、凡客、淘寶客戶端,快盤客戶端。Android在這里的應用還是界面層的東西為主。核心還在WEB。不過從應用層面上來講,幾乎大一點的網站,都需要有手機客戶端程序。
2)、Android通用類程序
如基於LBS(基於位置的服務)的應用 (這類一般會嵌入到客戶端應用程序中),流媒體播放應用。由於移動設備的方便便捷,這類應用有不錯的前景。
3)、Android游戲開發
需要掌握的游戲引擎LGame,游戲框架等。手機上的游戲會是一大塊內容,有前途。
4)、Android底層開發
需要掌握C、Linux等較底層的東西,發展方向應該是驅動、協議開發,嵌入式開發
2、想從事客戶端應用程序的開發,要會J2EE(SSH)。(看伺服器端的構架了)
5. 如何對系統調用了aidl文件進行避免混淆
建立AIDL服務要比建立普通的服務復雜一些,具體步驟如下:
(1)在Eclipse Android工程的Java包目錄中建立一個擴展名為aidl的文件。該文件的語法類似於Java代碼,但會稍有不同。詳細介紹見實例52的內容。
(2)如果aidl文件的內容是正確的,ADT會自動生成一個Java介面文件(*.java)。
(3)建立一個服務類(Service的子類)。
(4)實現由aidl文件生成的Java介面。
(5)在AndroidManifest.xml文件中配置AIDL服務,尤其要注意的是,<action>標簽中android:name的屬性值就是客戶端要引用該服務的ID,也就是Intent類的參數值。
建立AIDL服務
本例中將建立一個簡單的AIDL服務。這個AIDL服務只有一個getValue方法,該方法返回一個String類型的值。在安裝完服務後,會在客戶端調用這個getValue方法,並將返回值在TextView組件中輸出。建立這個AIDL服務的步驟如下:
(1)建立一個aidl文件。在Java包目錄中建立一個IMyService.aidl文件。IMyService.aidl文件的位置如圖
IMyService.aidl文件的內容如下:
Java代碼:
package eoe.demo;
interface IMyService {
String getValue();
}
IMyService.aidl文件的內容與Java代碼非常相似,但要注意,不能加修飾符(例如,public、private)、AIDL服務不支持的數據類型(例如,InputStream、OutputStream)等內容。
(2)如果IMyService.aidl文件中的內容輸入正確,ADT會自動生成一個IMyService.java文件。讀者一般並不需要關心這個文件的具體內容,也不需要維護這個文件。關於該文件的具體內容,讀者可以查看本節提供的源代碼。
(3)編寫一個MyService類。MyService是Service的子類,在MyService類中定義了一個內嵌類(MyServiceImpl),該類是IMyService.Stub的子類。MyService類的代碼如下:
Java代碼:
package eoe.demo;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.os.RemoteException;
public class MyService extends Service {
public class MyServiceImpl extends IMyService.Stub {
@Override
public String getValue() throws RemoteException {
return "Android/OPhone開發講義";
}
}
@Override
public IBinder onBind(Intent intent) {
return new MyServiceImpl();
}
}
在編寫上面代碼時要注意如下兩點:
IMyService.Stub是根據IMyService.aidl文件自動生成的,一般並不需要管這個類的內容,只需要編寫一個繼承於IMyService.Stub類的子類(MyServiceImpl類)即可。
onBind方法必須返回MyServiceImpl類的對象實例,否則客戶端無法獲得服務對象。
(4)在AndroidManifest.xml文件中配置MyService類,代碼如下:
Java代碼:
<service android:name=".MyService" >
<intent-filter>
<action android:name="net.blogjava.mobile.aidl.IMyService" />
</intent-filter>
</service>
下面來編寫客戶端的調用代碼。首先新建一個Eclipse Android工程(ch08_aidlclient),並將自動生成的IMyService.java文件連同包目錄一起復制到ch08_aidlclient工程的src目錄中,如圖所示。
調用AIDL服務首先要綁定服務,然後才能獲得服務對象,代碼如下:
Java代碼:
package net.blogjava.mobile;
import net.blogjava.mobile.aidl.IMyService;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle; import android.os.IBinder;
import android.view.View; import android.view.View.OnClickListener;
import android.widget.Button; import android.widget.TextView;
public class Main extends Activity implements OnClickListener {
private IMyService myService = null;
private Button btnInvokeAIDLService;
private Button btnBindAIDLService;
private TextView textView;
private ServiceConnection serviceConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
// 獲得服務對象
myService = IMyService.Stub.asInterface(service);
btnInvokeAIDLService.setEnabled(true);
}
@Override
public void onServiceDisconnected(ComponentName name) {
}
};
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.btnBindAIDLService:
// 綁定AIDL服務
bindService(new Intent("net.blogjava.mobile.aidl.IMyService"), serviceConnection, Context.BIND_AUTO_CREATE);
break;
case R.id.btnInvokeAIDLService:
try {
textView.setText(myService.getValue());
// 調用服務端的getValue方法
} catch (Exception e) {
}
break;
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnInvokeAIDLService = (Button) findViewById(R.id.btnInvokeAIDLService);
btnBindAIDLService = (Button) findViewById(R.id.btnBindAIDLService); btnInvokeAIDLService.setEnabled(false);
textView = (TextView) findViewById(R.id.textview);
btnInvokeAIDLService.setOnClickListener(this);
btnBindAIDLService.setOnClickListener(this);
}。
6. GitHub是什麼GitHub如何使用
一、GitHub是一個源代碼的在線託管平台,提供了版本控制和協同工作功能。
二、GitHub使用步驟:
步驟一、創建一個知識庫
在GitHub里,知識庫總是用來組織某一個特定的項目。知識庫可以包含文件夾,文件,圖片,音頻,視頻,數據表或數據集--任何你的項目需要的文件都可以。
7. android開發求助 : 用android手機做客戶端,電腦做伺服器,要怎麼實現兩者的連接,可以用php搭建伺服器么
其實這個完全可以的。你是想讓兩者互聯主要是通過什麼方式互聯,如果是通過訪問網站互聯,直需要學習電腦網頁製作,然後把頁面做小一些,跟手機屏幕差不多大,就能用android手機訪問.如果您是想用軟體,那需要會開發android軟體,開發軟體支持http形式向伺服器GET或POST訪問互聯。當然PHP環境的伺服器空間是支持的。
8. eoe客戶端,點擊小欄目,如何出現自定義的Activity
eoe的源碼適合文章類的,如果一個欄目下多種不同樣式的還是不要照仿
9. android客戶端直播,土豪進入房間的特效,有demo嗎
土豪進入的話,應該是在原來的視頻,加上一些額外的畫面,這樣的代碼,可以去eoe/csdn看看有沒有類似的資源
10. 網站WEB前端開發需要掌握什麼技術
前端的應用非常廣泛,基本網站、APP、HTML5小程序等都需要前端開發,所以只要是互聯網產品基本都需要前端。
前端程序猿切頁面寫頁面,Web上、H5上的炫酷效果,是前端開發大展身手的地方。最常見的用於前端開發的技術組合是:
HTML+CSS+JavaScript。
Web前端開發需要掌握的幾個必備技術是:
HTML +_CSS核心、JavaScript、VUE框架
web前端是在開發人員中最直接面向產品、面向用戶的設計人員,一個開發團隊的成果是要靠web前端去展現,因為用戶不會去關心後台的處理有多麼強大。
後端開發是寫後台,各種業務邏輯、數據處理、模塊介面、客戶端介面等等。後端開發者通常精通於一種Web編程語言和一個資料庫管理系統。電商平台點擊篩選條件下面為你篩選出來的寶貝的功能以及付款人數數據的變化等都是由後台來實現提供的。
目前web產品交互越來越復雜,用戶使用體驗和網站前端性能優化這些都得靠web前端去做。
前端開發則是網站的前台代碼實現,包括基本的HTML和CSS以及JavaScript/ajax,最新的高級版本HTML5、CSS3,以及SVG等。
前端開發需要學習的技術
1 掌握基本web前端開發技術:HTML、CSS、JavaScript、DOM、BOM、AJAX等,而且要了解它們在不同瀏覽器上的兼容情況、渲染原理和存在的Bug
2 必須掌握網站性能優化、SEO和伺服器端開發技術的基礎知識
3 必須學會運用各種web前端開發與測試工具進行輔助開發
4 除了掌握技術層面的知識,還要掌握理論層面的知識,包括代碼的可維護性、組件的易用性、分層語義模板和瀏覽器分級支持等
5 未來web前端開發工程師還要研究HTML5、web視覺設計、網站配色、網站交互設計模式等相關技術
web前端有廣闊的發展空間,app、小程序、移動端、pc端等都網站是需要前端技術的開發支持才能夠完成,技術門檻相對較低、需求量較大,薪資待遇良好。只要是互聯網端的客戶界面,就需要前端來製作完成,前端開發的編程量不大,但是需要部分編程,入門簡單,但是要學的深入需要一個過程。
Web前端招聘崗位
• 前端開發工程師、Web開發工程師、網頁開發工程師、HTML開發工程師...
• H5開發工程師、移動應用開發工程師、App開發工程師、小程序開發工程師...
• JS開發工程師、Vue.js開發工程師、Node.js開發工程師、前端架構師...
• 小游戲開發工程師、數據可視化開發工程師、WebGL開發工程師、WebVR開 發工程師、Web安全工程師...