關於360外掛化框架Replugin豎屏修改為橫屏解決方案
預備工作
去GitHub搜尋replugin工程,下載replugin原始碼,解壓如下,游標選中的部分是我們要修改的地方。
1.1.20 為什麼要修改Gradle
因為Replugin原生的預設生成activity坑位都是豎屏的,而車機是橫屏的,導致外掛activity 實際效果與預期不相符,另外,在外掛manifest中的activity標記橫屏是無效的。
1.1.21Gradle外掛分類介紹
Gradle的外掛一般有這麼兩種,一種是直接在專案中的gradle檔案裡編寫,這種方式的缺點是無法複用外掛程式碼,在其他專案中還得複製一遍程式碼(或者說說複製一遍檔案)另一種是在獨立的專案裡編寫外掛,然後釋出到中央倉庫,之後直接引用就可以了,優點就是可複用。所以我們選擇第二種方式,必過我做的是釋出到本地倉庫。
1.1.22Gradle修改詳細步驟
1.新建一個Android專案
2.新建一個Android Module(replugingradle)型別選擇Android Library,如下圖所示:
3.module中在main目錄下新建groovy資料夾和resources資料夾
4.開啟replugin原始碼的replugin-host-gradle,在androidstudio中展示如下
原始碼中的groovy下的“com”包直接複製到“replugingradle”的module下的groovy下,如下圖所示
5.修改module中build.gradle檔案,見下圖修改前後對比
建議是直接將build.gradle 中原有內容清空,然後將如下內容全部貼上進去
apply plugin: 'groovy' apply plugin: 'maven' dependencies { compile 'com.android.tools.build:gradle:3.0.0' compile 'org.json:json:20160212' compile 'org.codehaus.groovy:groovy:2.4.7' compile 'com.squareup:javapoet:1.5.1' compile gradleApi() compile localGroovy() compile 'com.google.gradle:osdetector-gradle-plugin:1.2.1' compile 'net.dongliu:apk-parser:2.2.0' } repositories { mavenCentral() } //maven 庫組id group='com.qihoo360.replugin' //版本號 version='1.0.0' uploadArchives { repositories { mavenDeployer { //釋出到本地倉庫地址 repository(url:uri('C:/Users/wenpingm/Desktop/ replugin_gradle/release')) } } }
6.修改module中resources
中新建包META_INF,然後再新建包gradle_plugins,再新建文“replugin-host-gradle.properties”,如下所示
注意“replugin-host-gradle.properties”檔案的命名就是你只有使用外掛的名字,
7.刪除不需要的檔案,下圖左邊是乾淨的,右邊應該刪除的都標記紅色框框
修改指令碼中的程式碼,見下圖
8.點選下圖右側的紅色uploadArchive
9.釋出本地倉庫成功後,檢視本地倉庫結果如下圖:
最後總結:經過測試時可行的,因為車機的所有的activity都是要求橫屏,所有對應上面僅僅只修改了一處,就可以了,而如果你的需求是某些activity是豎屏某些是橫屏,指定關係不清楚,那就很難修改,基本要大量修改replugin類ComponentGenerator的大量指令碼,並且還不一定和坑位匹配的上