我想知道是否有可能创建一个只有Java的Android应用程序。没有XML,没有其他东西。
在Eclipse中,当我创建一个新的Android项目时,会自动生成Manifest xml文件和主布局xml文件。我可以删除这些文件并用Java文件替换它们吗?
对于布局,您有两种选择
因此,对于第一个问题 - 是的 - 您可以删除xml布局文件(如果必须)。
我想你无法摆脱manifest.xml。引用:
每个应用程序必须在其根目录中包含一个AndroidManifest.xml文件(具有该名称)。
是否可以避免使用XML?是的,除了清单和可能的一些主题声明(我不确定是否存在我们可以通过主题设置的所有内容的公共Java等价物)。
这是个好主意吗?天哪,不。
资源系统背后的重点是允许Android根据永久设备特征(例如,屏幕密度)和瞬态设备特征(例如,纵向与横向方向)透明地为您提供当前设备所需的适当资源。 )。
为了避免资源,你将不得不通过一堆if
语句来确定要运行哪些Java代码,手动检测所有这些事情。一旦考虑到Android本身的变化,这会变得非常复杂,因为新的配置更改和值会被添加,这使您难以以向后兼容的方式支持所需的一切。
在此过程中,除了普通的Java编辑和调试之外,您将失去所有工具支持(拖放式GUI构建,MOTODEV Studio的字符串资源助手等)。
您似乎在所有其他考虑因素之前放置自己的个人技术倾向。如果这是一个小型的个人项目,这可能是一个很好的态度。但是,如果您要创建由其他人开发和/或维护的代码,则需要考虑其他开发人员的需求,并且他们可能比您更加开放XML。
看一下这个由android团队发布的视频:http://www.parleys.com/#st=5&id=2191&sl=8
这都是关于布局的,包括如何使用Java而不是XML来布局应用程序。但是,你被警告说android团队希望你使用XML ...
可以从代码创建所有布局文件。但建议使用布局XML文件。
AndroidManifest.xml
不能被代码替换,因为系统依赖于此文件中包含的数据。
我完全同意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;
}