GOOGLE告诉我说, 后续Eclipse将不再维护了, 所以, 赶紧下了个Android Studio。
刚开始使用, 各种不习惯,这里就不说了,今天讲讲,如何修改项目代码生成模板。
* 需说明, 我使用的是ubuntu下的开发环境。
相关目录:
安装目录/android-studio/plugins/android/lib/templates
drwxrwxr-x 18 anson anson 4096 9月 3 22:42 activities/ 默认Activity生成模版
-rw-r--r-- 1 anson anson 310 6月 3 11:25 build.gradle
drwxrwxr-x 6 anson anson 4096 7月 6 10:51 eclipse/
drwxrwxr-x 4 anson anson 4096 6月 3 13:57 gradle/
drwxrwxr-x 10 anson anson 4096 9月 4 15:30 gradle-projects/ 项目生成模板
-rw-r--r-- 1 anson anson 10695 6月 3 11:25 NOTICE
drwxrwxr-x 28 anson anson 4096 8月 1 09:38 other/
目前我只更改上面两个目录,其它的内容修改起来都相似。
* 修改过程,建议先将原有的模板进行备份, 以免出了问题后改不回来。
/plugins/android/lib/templates/gradle-projects/NewAndroidModule/
1. 不使用com.android.support:appcompat-v7, 不引用appcompat
|-- globals.xml.ftl
改为:
2. 去掉test 部分的代码
|-- recipe.xml.ftl
删除以下代码
以后生成的项目中就不再存在***.****.****(test)这个包和 ApplicationTest.java 了
3. 修改AndroidManifest.xml
|-- root/AndroidManifest.xml.ftl
android:allowBackup="true"#if> android:label="@string/app_name"<#if copyIcons && !isLibraryProject> android:icon="@mipmap/ic_launcher"<#elseif assetName??> android:icon="@drawable/${assetName}"#if> <#if baseTheme != "none" && !isLibraryProject> android:theme="@style/AppTheme"#if>>
我想删除theme的声明,所以,删除
<#if baseTheme != "none" && !isLibraryProject> android:theme="@style/AppTheme"#if>
* 判断语句: <#if ..........> xxx #if>
接下来,修改Activity生成模板,我采用方法是增加一个模板。
/plugins/android/lib/templates/activities
drwxrwxr-x 3 anson anson 4096 8月 1 09:38 AlwaysOnWearActivity/
drwxrwxr-x 3 anson anson 4096 8月 1 09:38 AndroidTVActivity/
drwxrwxr-x 3 anson anson 4096 9月 3 22:58 ASActivity/
drwxrwxr-x 3 anson anson 4096 9月 4 14:43 BlankActivity/
drwxrwxr-x 3 anson anson 4096 8月 1 09:38 BlankActivityWithFragment/
drwxrwxr-x 3 anson anson 4096 6月 3 13:57 BlankWearActivity/
drwxrwxr-x 3 anson anson 4096 6月 3 13:57 EmptyActivity/
drwxrwxr-x 3 anson anson 4096 8月 1 09:38 FullscreenActivity/
drwxrwxr-x 3 anson anson 4096 8月 1 09:38 GoogleAdMobAdsActivity/
drwxrwxr-x 3 anson anson 4096 8月 1 09:38 GoogleMapsActivity/
drwxrwxr-x 3 anson anson 4096 8月 1 09:38 GooglePlayServicesActivity/
drwxrwxr-x 3 anson anson 4096 8月 1 09:38 LoginActivity/
drwxrwxr-x 3 anson anson 4096 8月 1 09:38 MasterDetailFlow/
drwxrwxr-x 3 anson anson 4096 8月 1 09:38 NavigationDrawerActivity/
drwxrwxr-x 3 anson anson 4096 8月 1 09:38 SettingsActivity/
drwxrwxr-x 3 anson anson 4096 8月 1 09:38 TabbedActivity/
每一个文件夹对就一个模板,ASActivity/ 是我的模板, 拷贝自:BlankActivity/
剩下的,就是修改ASActivity/中的内容
4. 修改布局文件:
|--ASActivity/root/res/layout/activity_simple.xml.ftl
删除:
xmlns:tools="http://schemas.android.com/tools" tools:context="${relativePackage}.${activityClass}">
*实在是用不惯这些代码...
其它资源文件类似, 默认都在这几个文件目录下改。
5. 修改Activity的JAVA源码:
|-- ASActivity/root/src/app_package/SimpleActivity.java.ftl
package ${packageName};
import ${superClassFqcn};
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
<#if applicationPackage??>
import ${applicationPackage}.R;
#if>
public class ${activityClass} extends ${superClass} {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.${layoutName});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.${menuName}, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
该删除的删除, 该增加的增加....