Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Por qué los nombres de archivo de diseño de Android están tan limitados?

Es bueno tener consistencia en los nombres de archivo.

MyActivity.java contiene la clase pública MyActivity

Me gustaría que el archivo xml con su diseño se llamara res / layout / MyActivity.xml

Pero recibo un mensaje de error que dice "nombre de archivo no válido: debe contener sólo [a-z0-9_.]"

Así que dos preguntas:

  1. – Ah – esta restricción es probablemente en su lugar por lo que nunca será atornillado por los sistemas de archivos que no hacen una distinción entre mayúsculas y minúsculas, como HFS de Apple + (Aunque vea Wikipedia para la historia gory http://en.wikipedia.org/wiki/Comparison_of_file_systems#cite_note-note-35-77 )

  2. ¿Qué nombres de archivos están restringidos – todos los res? Sólo res / layout? Res / layout más algunas otras carpetas?

¿Puede alguien confirmar 1, y dar detalles sobre 2?

Gracias,

Peter

  • ¿Qué caracteres permiten los nombres de archivo en Android?
  • Obtener nombres de archivo desde un directorio en Android
  • 3 Solutions collect form web for “¿Por qué los nombres de archivo de diseño de Android están tan limitados?”

    ¿Por qué está tan limitado el conjunto de caracteres

    Debido a que el nombre tiene que ser un identificador Java válido, por lo que puede utilizar constantes como R.layout.foo para identificar el diseño en tiempo de ejecución.

    ¿Qué nombres de archivos están restringidos – todos los res? Sólo res / layout? Res / layout más algunas otras carpetas?

    Cualquier cosa en res/

    No estoy seguro de la razón de #1 . Nunca he visto una explicación en ninguna lectura sobre Recursos. Para #2 de mi experiencia cualquier cosa que será utilizada como un id en java por ejemplo, R.drawable.marker , R.string.default_message tiene que seguir las reglas de [a-z0-9_] .

    Cuando se utiliza MacOS X como una plataforma de desarrollo, casi cualquier desarrollador que trate con código de plataforma cruzada, tarde o temprano se ejecutará en el problema que el código fuente de un proyecto de Linux / UNIX no se puede construir después de descargar / checkout / clon porque el proyecto tiene dos identically named Archivos en un solo directorio que sólo varían en caso de que; Y en OS X eso significa que usted termina para arriba con apenas un archivo mientras que el segundo sobrescribirá el primer.

    Por supuesto, HFS + puede distinguir entre mayúsculas y minúsculas, pero esto sólo se puede configurar cuando se formatea una partición y por defecto todos los Mac vienen con OS X preinstalado en una partición preformateada con un HFS + insensible a mayúsculas y minúsculas (como es el modo predeterminado para HFS + . Así que primero tendrás que reformatear tu Mac recién comprado y reinstalar OS X para lograr ese objetivo. Y luego prepárate para problemas ya que muchas aplicaciones dependen de la insensibilidad de mayúsculas en la Mac; Un ejemplo muy famoso es Steam (no se puede ejecutar Steam desde un HFS + sensible a mayúsculas y minúsculas).

    Y no es sólo MacOS. FAT no distingue entre mayúsculas y minúsculas y aunque NTFS puede distinguir entre mayúsculas y minúsculas (al igual que HFS +), no es por defecto. También creo que SMB no es como por especificación de protocolo (al menos versiones anteriores). El sistema de archivos utilizado en los CD no lo es, y así sucesivamente.

    Así que supongo que para evitar cualquier problema directamente desde el principio, Google pensó que es una buena idea forzar a los archivos a que sean minúsculas, en cuyo caso no importa qué sistema de archivos esté usando o cómo esté configurado. Por supuesto, eso es un poco estúpido si todavía puede ejecutar en ese problema con sus archivos de código fuente, sin embargo, que estos pueden ser caso mixto es una decisión que es anterior a Android y que ha sido hecho por Sun muchos años antes de que Google incluso soñado con ese sistema .

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.