Android Studio 项目模板修改

简介: Android Studio 项目模板修改

      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


<global id="appCompat" type="boolean" value="${(hasDependency('com.android.support:appcompat-v7'))?string}" />

改为:


<global id="appCompat" type="boolean" value="false" />


2. 去掉test 部分的代码


   |-- recipe.xml.ftl


删除以下代码


   <instantiate from="test/app_package/ApplicationTest.java.ftl"

                  to="${testOut}/ApplicationTest.java" />


以后生成的项目中就不再存在***.****.****(test)这个包和 ApplicationTest.java 了


3. 修改AndroidManifest.xml


   |-- root/AndroidManifest.xml.ftl


<application <#if minApiLevel gte 4 && buildApi gte 4>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


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

   xmlns:tools="http://schemas.android.com/tools"

   android:layout_width="match_parent"

   android:layout_height="match_parent"

   android:paddingLeft="@dimen/activity_horizontal_margin"

   android:paddingRight="@dimen/activity_horizontal_margin"

   android:paddingTop="@dimen/activity_vertical_margin"

   android:paddingBottom="@dimen/activity_vertical_margin"

   tools:context="${relativePackage}.${activityClass}">

删除:


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);
    }
}

该删除的删除, 该增加的增加....


相关文章
|
6月前
|
开发工具 Android开发 iOS开发
如何在Android Studio中配置Flutter环境?
如何在Android Studio中配置Flutter环境?
1484 61
|
1月前
|
缓存 Unix Android开发
Android安卓项目调试之Gradle 与 Gradle Wrapper的概念以及常用gradle命令深度详解-优雅草卓伊凡
Android安卓项目调试之Gradle 与 Gradle Wrapper的概念以及常用gradle命令深度详解-优雅草卓伊凡
184 8
|
1月前
|
存储 API Android开发
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
105 4
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
|
1月前
|
Java 开发工具 Maven
【01】完整的安卓二次商业实战-详细的初级步骤同步项目和gradle配置以及开发思路-优雅草伊凡
【01】完整的安卓二次商业实战-详细的初级步骤同步项目和gradle配置以及开发思路-优雅草伊凡
123 6
|
5月前
|
Android开发 Windows
Android studio 报错Connect to 127.0.0.1:8888 [/127.0.0.1] failed: Connection refused: connect(已解决)
这是一篇关于解决Android Studio报错“Connect to 127.0.0.1:8888 failed: Connection refused”的文章。问题通常因系统代理设置被Android Studio自动保存导致。解决方法是找到系统中Android Studio使用的gradle.properties文件(位于Windows的C:\Users\你的电脑用户名\.gradle或Mac的/Users/.{你的用户目录}/.gradle),删除或注释掉多余的代理配置后保存并重新Sync项目。希望此经验能帮助快速解决同类问题!
779 36
|
5月前
|
Java Android开发
Android studio中build.gradle文件简单介绍
本文解析了Android项目中build.gradle文件的作用,包括jcenter仓库配置、模块类型定义、包名设置及依赖管理,涵盖本地、库和远程依赖的区别。
498 19
|
8月前
|
缓存 Java 测试技术
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
923 3
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
|
8月前
|
Dart 前端开发 Android开发
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
218 4
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
缓存 安全 开发工具
Android 解决bug:Android studio 运行、编译项目时导致电脑死机
Android 解决bug:Android studio 运行、编译项目时导致电脑死机
1187 0
|
Android开发
Android Studio在android Emulator中运行的项目黑屏
Android Studio在android Emulator中运行的项目黑屏
824 0
Android Studio在android Emulator中运行的项目黑屏

热门文章

最新文章