MAC上開發android studio外掛基礎教程
android studio上的外掛有很多,使用這些外掛能大大提高我們的開發效率。說下怎麼開發簡單的AS外掛。因為我用的是mac,就說說mac,win的類似(只需要再裝下java sdk)。
這裡就舉個簡單的例子,做一個建立activity和fragment生命週期所有方法的外掛。
首先先下載IntelliJ IDEA這款IDE,android studio外掛的開發不能使用android studio,而是要用InteillJ,下載連結 https://www.jetbrains.com/idea/download/#section=mac。選擇下載免費的community版本就可以。然後安裝,安裝後啟動建立新專案,建立新專案選擇IntelliJ Platform Plugin
java sdk Mac系統預設是有的,不需要下載,如果是win系統先下載在指定下路徑就行。然後這樣一步步預設建立下去。
1. 修改plugin.xml
建立完以後大概就這樣,主要看下plugin.xml這個檔案,這個是配置檔案,相當於android stuido裡面的Androidminfest.xml。具體看下幾個引數的意思:
id 這個外掛的唯一識別碼,跟別的外掛做區分,如果你做的外掛只是自己用,不釋出到倉庫,那可以不用改預設就可以。如果要釋出,這個就需要改下。
name 外掛的名字,是會顯示在IDE上的
version 外掛版本號
vendor email 郵箱,不釋出到倉庫可以不用管。
除了version,其他都做了修改,具體見圖。
2.建立action
在src上右鍵,建立action
Groups選擇的是要在哪個選單下顯示外掛
建立完action後,會自動生成類下src下,也會在plugn.xml裡面出現action的相關資訊。
3. 實現action
建立完action,就下來就是實現action。實現action,主要就是實現actionPerformed方法,程式碼直接貼出來。
這個是生成activity生命週期
public class ActivityLifeCycle extends AnAction { @Override public voidactionPerformed(AnActionEvent e) { //獲取Editor和Project物件 Editor editor = e.getData(PlatformDataKeys.EDITOR); Project project = e.getData(PlatformDataKeys.PROJECT); Document document = editor.getDocument(); Runnable runnable = new Runnable() { @Override public void run() { document.insertString(0, getContent()); } }; //加入任務,由IDEA排程執行這個任務 WriteCommandAction.runWriteCommandAction(project, runnable); } private String getContent(){ return "\n"+" @Override\n" + " protected void onCreate(Bundle savedInstanceState) {\n" + " super.onCreate(savedInstanceState);\n" + " }\n" + "\n" + " @Override\n" + " protected void onStart() {\n" + " super.onStart();\n" + " }\n" + "\n" + " @Override\n" + " protected void onRestart() {\n" + " super.onRestart();\n" + " }\n" + "\n" + " @Override\n" + " protected void onResume() {\n" + " super.onResume();\n" + " }\n" + "\n" + " @Override\n" + " protected void onPause() {\n" + " super.onPause();\n" + " }\n" + "\n" + " @Override\n" + " protected void onStop() {\n" + " super.onStop();\n" + " }\n" + "\n" + " @Override\n" + " protected void onDestroy() {\n" + " super.onDestroy();\n" + " }"+ "\n"; } }
下面這個是生成fragment生命週期
public class FragmentLifeCycle extends AnAction { @Override public void actionPerformed(AnActionEvent e) { //獲取Editor和Project物件 Editor editor = e.getData(PlatformDataKeys.EDITOR); Project project = e.getData(PlatformDataKeys.PROJECT); Document document = editor.getDocument(); Runnable runnable = new Runnable() { @Override public void run() { document.insertString(0, getContent()); } }; //加入任務,由IDEA排程執行這個任務 WriteCommandAction.runWriteCommandAction(project, runnable); } private String getContent(){ return "\n"+" @Override\n" + " public void onAttach(Context context) {\n" + " super.onAttach(context);\n" + " }\n" + "\n" + " @Override\n" + " public void onCreate(@Nullable Bundle savedInstanceState) {\n" + " super.onCreate(savedInstanceState);\n" + " }\n" + "\n" + " @Nullable\n" + " @Override\n" + " public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {\n" + " return super.onCreateView(inflater, container, savedInstanceState);\n" + " }\n" + "\n" + " @Override\n" + " public void onActivityCreated(@Nullable Bundle savedInstanceState) {\n" + " super.onActivityCreated(savedInstanceState);\n" + " }\n" + "\n" + " @Override\n" + " public void onStart() {\n" + " super.onStart();\n" + " }\n" + "\n" + " @Override\n" + " public void onResume() {\n" + " super.onResume();\n" + " }\n" + "\n" + " @Override\n" + " public void onPause() {\n" + " super.onPause();\n" + " }\n" + "\n" + " @Override\n" + " public void onStop() {\n" + " super.onStop();\n" + " }\n" + "\n" + " @Override\n" + " public void onDestroyView() {\n" + " super.onDestroyView();\n" + " }\n" + "\n" + " @Override\n" + " public void onDestroy() {\n" + " super.onDestroy();\n" + " }\n" + "\n" + " @Override\n" + " public void onDetach() {\n" + " super.onDetach();\n" + " }"+ "\n"; } }
4.看執行效果
直接執行看效果
因為不是android studio的環境所以會有報錯。這用我們的外掛就完成了。
5.在android studio上的使用和釋出
生成jar或者更新jar需要執行Build下的Prepare Plugin Module,我們使用這個jar就可以在android studio上使用外掛
提交到倉庫前需要把plugn.xml檔案裡的<depends>com.intellij.modules.lang</depends>註釋開啟,否則無法釋出到android studio的倉庫。然後到https://plugins.jetbrains.com/plugin/add/idea這個地址去釋出就行啦,先註冊個賬號,提交jar,填寫資訊,然後等待稽核。
over!