Android - 使用纯Java而不是XML创建应用程序?

问题描述 投票:22回答:5

我想知道是否有可能创建一个只有Java的Android应用程序。没有XML,没有其他东西。

在Eclipse中,当我创建一个新的Android项目时,会自动生成Manifest xml文件和主布局xml文件。我可以删除这些文件并用Java文件替换它们吗?

java android android-layout android-manifest
5个回答
13
投票

对于布局,您有两种选择

  1. 以XML格式声明UI元素。 Android提供了一个简单的XML词汇表,它对应于View类和子类,例如小部件和布局的类。
  2. 在运行时实例化布局元素。您的应用程序可以以编程方式创建View和ViewGroup对象(并操纵其属性)。

因此,对于第一个问题 - 是的 - 您可以删除xml布局文件(如果必须)。

我想你无法摆脱manifest.xml。引用:

每个应用程序必须在其根目录中包含一个AndroidManifest.xml文件(具有该名称)。


6
投票

是否可以避免使用XML?是的,除了清单和可能的一些主题声明(我不确定是否存在我们可以通过主题设置的所有内容的公共Java等价物)。

这是个好主意吗?天哪,不。

资源系统背后的重点是允许Android根据永久设备特征(例如,屏幕密度)和瞬态设备特征(例如,纵向与横向方向)透明地为您提供当前设备所需的适当资源。 )。

为了避免资源,你将不得不通过一堆if语句来确定要运行哪些Java代码,手动检测所有这些事情。一旦考虑到Android本身的变化,这会变得非常复杂,因为新的配置更改和值会被添加,这使您难以以向后兼容的方式支持所需的一切。

在此过程中,除了普通的Java编辑和调试之外,您将失去所有工具支持(拖放式GUI构建,MOTODEV Studio的字符串资源助手等)。

您似乎在所有其他考虑因素之前放置自己的个人技术倾向。如果这是一个小型的个人项目,这可能是一个很好的态度。但是,如果您要创建由其他人开发和/或维护的代码,则需要考虑其他开发人员的需求,并且他们可能比您更加开放XML。


2
投票

看一下这个由android团队发布的视频:http://www.parleys.com/#st=5&id=2191&sl=8

这都是关于布局的,包括如何使用Java而不是XML来布局应用程序。但是,你被警告说android团队希望你使用XML ...


1
投票

可以从代码创建所有布局文件。但建议使用布局XML文件。

AndroidManifest.xml不能被代码替换,因为系统依赖于此文件中包含的数据。


0
投票

我完全同意Van Coding。如果您使用正确的编程语言,则可以编写比使用AXML更简洁的布局定义。 A C# example how to replace AXML layouts

ViewGroup Layout(ViewGroup layout, IList<View> contents) {
    if (contents != null)
        foreach (View v in contents)
            layout.AddView(v);

    return layout;
}
© www.soinside.com 2019 - 2024. All rights reserved.