Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> 安卓系統短信源碼依賴庫、可運行的源碼

安卓系統短信源碼依賴庫、可運行的源碼

編輯:關於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"
    }

3、因為代碼中有好多錯誤,就拿一個錯誤來說,setAppOps(AppOpsManager.OP_READ_SMS, AppOpsManager.OP_WRITE_SMS);這個是報錯的,解決方法如下

 

因為我的代碼是摘抄的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;
	}

7、然後就是修改一些bug存在的反射方法

 

8、然後就是刪掉那個報紅的,還有干掉style文件

\

 

到此為止基本上bug就差不多了

 

這裡說下eclipse上bug會比較少,可以通過引用lib方式方便,麼有as裡面那些多余的style啊 themebug

本人也是4月初才開始用as的,對as蛋疼的狠,但是as有一個優於eclipse的地方,eclipse編譯有時候編譯庫不通過,一直卡,as編譯很快

 

\

 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved