編輯:關於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編譯很快
一個特別適合新手練習的Android小項目——每日一妹紙 介紹 每天更新一張精選妹紙圖片,第一版目前已完成,本項目會持續更新,遇到任何問題歡迎與我聯系^_^ 為什麼說
dagger2記錄篇,dagger2記錄作為一個碼農,什麼都不用多講,貼代碼 build project build module Application pub
國外干貨!6個方法助你設計出優秀的APP,干貨app偉大的設計來源於一致性和細致化,而其實只要有足夠的紀律,每個團隊都可以實現這一點。 品牌(源碼:http://www.
Android事件分發機制源碼分析 小小感慨一下,做android有一段時間了,一直以來都是習慣整理筆記存到有道筆記上,沒有寫博客的習慣。以後逐步分類整理出來,也算&ld