1. 程式人生 > >關於360外掛化框架Replugin豎屏修改為橫屏解決方案

關於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的大量指令碼,並且還不一定和坑位匹配的上