热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Androidstudio自定义项目模板,包含两个或多个模块

如何解决《Androidstudio自定义项目模板,包含两个或多个模块》经验,为你挑选了1个好方法。

我正在尝试使用免费标记一起创建一个包含域和数据模块的Android Studio自定义项目模板.但是我无法在新项目创建时创建新模块.请帮帮我

编辑:我正在使用此博客创建自定义模板 https://robusttechhouse.com/tutorial-how-to-create-custom-android-code-templates/ 但它只会生成一个应用模块



1> codeWhispere..:

这不是一件轻而易举的事.

要了解您想要完成的任务背后的复杂性,您必须阅读Android Studio和/或IntelliJ Community Edition的源代码.

因此,我将概述您的问题的几种可能的替代解决方案,然后我将解释与创建您自己的Android项目模板相关的一些复杂性.

第一种方法:创建一个已有两个模块的模板应用程序项目.
这是最简单的方法.您可以创建此项目,作为其他项目的基础.您可以将其置于版本控制之下并重新使用它的特定版本.在Android Studio中,您可以使用以下方法导入:
File-> New-> Import Project... File-> New-> Project From Version Control

第二种方法:修改NewAndroidProject模板和/或要使用的模块模板.
导航到以下路径: /plugins/android/lib/templates/gradle-projects/NewAndroidProject

这是用于大多数(或所有)Android项目的模板.

相反,这个模板用于您在应用程序中使用的每个模块,例如"app"模块,库模块和其他一些模块.您可以自定义其中的文件,但它会影响您在Android Studio中创建的所有项目. /plugins/android/lib/templates/gradle-projects/NewAndroidModule

修改这两个模板可能会也可能不会解决您的问题,我不打算深入描述您如何做到这一点,因为您可能希望保持创建新项目的标准方式.

第二种方法当然不能回答你的问题,这就是我向你提出第三种方法的原因.

第三种方法:为Android Studio构建自己的插件 难以将自己的项目模板添加到Android Studio的原因是,到目前为止,Android Studio已经过编程(和硬编码)以从特定目录中选择项目模板文件并处理它们使用FreeMarker模板引擎,并最终使用Gradle导入器处理该结果,以便从头开始创建新项目时显示的状态.

要见证此行为,请尝试更改/plugins/android/lib/templates/gradle-projects/NewAndroidModule/root/build.gradle.ftl文件,即使向其添加注释,重新启动Android Studio,也可以启动新项目.您会注意到您在新项目的根目录中的build.gradle文件中的更改.

现在,Android Studio被硬编码为使用该特定模板,这是您无法更改其行为的原因,除非您更改模板或为Anroid Studio构建自己的插件.

通过为AS开发自己的插件,您将能够重用AS用于从头创建新项目的特定组件和向导.在你的情况下,你将不得不创建一个新的向导,它将实现比defult更多的步骤,并保留最后一个完整的好处.

您可以从下载源代码开始,然后浏览以下文件: ModelWizard ModelWizardStep ActivityGalleryStep AndroidNewProjectAction

但在你开始之前,让我告诉你,除非你在团队中工作,否则创建一个解决你的问题的插件将是一项巨大的努力.Android Studio/IntelliJ IDEA CE本身就是一个生态系统.您可能需要花费几周的时间来掌握开发插件的基础知识,所以这取决于您.开发插件并了解这个IDE如何工作是一个很好的洞察力,因为一旦你理解了部件如何连接在一起就能够自动化你的工作流程,但在这种情况下,我将通过使用第一个来解决问题方法简单而有效.

TL; DR; 使用第一种方法.

如果您在中型/大型团队中工作,则开发插件.(第3种方法)



编辑:插件的第三种方法实现(插件开发入门):

IntelliJ Platform SDK文档:http: //www.jetbrains.org/intellij/sdk/docs/index.html

这是一个github回购,用于我的Droidcon Italy 2017演讲的示例代码,我与我合作的同事一起做过:https: //github.com/synesthesia-it/droidcon_as_plugin

这是您可以下载,编译,安装和试验的基本示例.演示基本概念很简单.

youtube上有一些关于此主题的视频:

从头开始实时编写IntelliJ IDEA插件[ https://www.youtube.com/watch?v=-ZmQD6Fr6KE ]

实时编写Scratch的IntelliJ IDEA插件(第2部分)
[ https://www.youtube.com/watch?v=s_cCB2R5_1k ]

IntelliJ SDK文档很棒,但可用的最佳文档是可供下载的其他插件的源代码.许多项目都提供了一个指向repo的链接,您可以在其中下载代码并进行实验.
https://plugins.jetbrains.com/idea

@OMAK
现在让我告诉你,你可能不会在文档或插件中找到你想要的东西.
我提供的内容主要针对IDEA IDE(Android Studio基于它),并且您要做的事情的文档根本就不存在.没有指南解释如何通过添加步骤或从非标准目录导入模板来修改android studio中的向导.
您正在处理的解决方案与我在我工作的公司中开发的解决方案非常相似.它很难入门,但能够开发插件提供了无限的可能性来自动化开发工作流程的多个部分.
我可以写一篇关于如何在不远的将来实现这一目标的简短指南来记录如何实现它.目前,最好通过观看youtube上的教程自行开始.


推荐阅读
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
author-avatar
手机用户2502873425
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有