轉:http://www.cnblogs.com/milospooner/archive/2012/07/15/2591979.html
idoubs是imsdroid的IOS版本。
從google以及baidu來看,除了官網http://code.google.com/p/imsdroid/介紹外,有關imsdroid或idoubs貌似的帖子並不是很多。但從官網的介紹可以知道這個項目確實非常強大。於是趕緊check下來學習。注意check out時要使用http://imsdroid.googlecode.com/svn/這個地址,不要使用trunk目錄,作者已經將項目放在了svn這個目錄下了。
check下來的源碼結構:
imsdroid或idoubs項目是基於doubango,關於這個項目可以到它的官網http://doubango.org/上看看介紹。
由於介紹imsdroid使用的資料實在是少之又少。學習它的原理,只能從看代碼開始。
從編譯項目開始。使用2.0目錄下的imsdroid,在eclipse中新建一個android項目,可以命名為imsdroid2.0,將branches下的imsdroid下的res,src下的(不包含src)目錄以及manifest文件都copy到新建的imsdroid2.0項目中來。這時候編譯imsdroid2.0是會出錯的。因為有很多類找不到。原因是由於imsdroid項目基於android-ngn-stack這個庫的,作者將其放在了branches下的android-ngn-stack,這個主要是封裝了底層的實現,使用jni來調用c庫。
所以使用同樣的方法,在eclipse中使用將android-ngn-stack這個庫新建為android項目,並把它作為一個庫。
方法是:右擊android-ngn-stack 選擇 properties 在彈出的窗口中把 is library 勾選上,如:
然后就在imsdroid2.0中引用這個庫就行了,引用的方法也是一樣的,只是在打開的properties窗口中點擊add...按鈕,將android-ngn-stack添加進來就行了。這時候,imsdroid2.0就可以編譯成功了。
編譯成功后就可以在手機安裝試用了么?no!
這里還有一個問題,就是android-ngn-stack是封裝了jni,但真正的實現是c庫,所以必須有一個libxxx.so文件才行。那這個文件在哪里呢?答案看下圖:
將native-debug/libs目錄copy到我們的imsdroid2.0項目中來,就可以了。
最后,對於doubango這個開源項目http://code.google.com/p/doubango/ 同樣的,要check out 這個項目, 只要http://doubango.googlecode.com/svn/ 就行了,trunk目錄下是空的。