編輯:關於Android編程
新項目需要做短信模塊功能,此短信模塊非安卓系統短信模塊,是利用了360張勇主導的開源框架,進行URL攔截,剝離出來的短信模塊
第一步:
去下載安卓系統源碼,通過對比4.4和4.4+版本的源碼,果斷用了4.4的源碼,為什麼呢?因為4.4短信源碼類少,將來bug少,短信模塊的代碼如下截圖
第二步:
我就拿As來說把(我起初是在eclipse上調試好的,後來移到As上),將上面幾個類導入進來,肯定是bug挺多的,後來在源碼裡找到關聯的類,我先貼出來最後的類
我先說下幾個bug點:
1、首先,這個短信模塊的代碼是一個依賴庫存在的(後期可能移到到項目中),所以說在主項目配置文件中需要填寫如下
xmlns:tools="http://schemas.android.com/tools"
2、因為360安全模塊是依賴的23的api,起先怕依賴報錯,我就依賴了22的api,避免不知道的沖突
compileSdkVersion 22 buildToolsVersion "23.0.2" defaultConfig { minSdkVersion 22 targetSdkVersion 23 versionCode 1 versionName "1.0" }
因為我的代碼是摘抄的4.4的系統短信源碼,所以我就從網上下載了4.4源碼編譯後的class文件,這裡就先上圖下這些class文件
4、class文件下載完畢後,就去下面截圖的目錄,藍色框是修改的android.jar 紅色框是自帶的,我們是需要藍色框修改後的jar包,因為這個jar可以解決諸如setAppOps這些方法,是利用編譯後的.class文件跟sdk自帶的android進行對比修改得出
5、然後在看下配置文件的cp,這裡說2點哈,改成true,然後自定義短信url
6、接下來就拿sms來說明把,
setAppOpps剛開始為了解決這個方法,修改了android.jar因為是系統自帶的,剛開始也沒有去注釋啊、去掉代碼之的,就是怕改多了後期bug無從下手,setAppOpps方法需要去掉,不然的話是不能創建的,我通過log才解決這個bug的
android4.4默認短信機制是為了不讓後台默默發送短信,但不幸的是,原生並沒有禁止非默認短信發短信
還有我寫這博客,這只是第一步只是插入可以了,貌似刪除修改我還沒有測試,我之前寫過demo,4.4以後默認的系統短信是不能直接進行刪除、修改的,得需要反射方法,才可以進行操作的
@Override public boolean onCreate() { // setAppOps(AppOpsManager.OP_READ_SMS, AppOpsManager.OP_WRITE_SMS); mOpenHelper = MmsSmsDatabaseHelper.getInstance(getContext()); return true; }
8、然後就是刪掉那個報紅的,還有干掉style文件
到此為止基本上bug就差不多了
這裡說下eclipse上bug會比較少,可以通過引用lib方式方便,麼有as裡面那些多余的style啊 themebug
本人也是4月初才開始用as的,對as蛋疼的狠,但是as有一個優於eclipse的地方,eclipse編譯有時候編譯庫不通過,一直卡,as編譯很快
在我們的實際項目中,數據應該說是很多的,我們的ListView不可能一下子把數據全部加載進來,我們可以當滾動條滾動到ListView的底部的時候,給一個更多的提示,當我們
一、 MonkeyRunner簡介monkeyrunner也是一款安卓sdk自有的測試工具,開源,位於\sdk\tools下面,它主要做性能測試,回歸測試,並且可以自定義
1 簡介Android大型項目中為了減小apk的體積,可以采用插件化的方法,即一些不常用的功能獨立成插件,當用戶需要的使用的時候再從服務器上下載回來,動態加載。這樣就避免
最近一直在學習自定義控件,搜了許多大牛們Blog裡分享的小教程,也上GitHub找了一些類似的控件進行學習。發現讀起來都不太好懂,就想寫這麼一篇東西作為學習筆記吧。一、控