- Папки в Android-смартфоне и что они означают
- Константин Иванов
- Иерархия памяти устройства на Android
- Приложения и папки в разделе данных
- Итак, какие папки мне можно (или нужно) удалять?
- How to Make App Folders on Android
- Organize your apps and save screen space
- What to Know
- How to Make a Folder
- Name Your Folder
- Add Your Folder to the Home Row
- Some Things Do Not Drag Like the Others
- Organizing your Source Files
Папки в Android-смартфоне и что они означают
Константин Иванов
Файловые менеджеры на Android могут быть удобным инструментом для организации хранения данных в вашем смартфоне, но сама структура Android (или ее кажущееся отсутствие) c непривычки может показаться несколько запутанной. Данные приложений, картинки, музыка – и доступ к этому всему из одной корневой папки – это несколько иной подход к иерархической структуре, чем то, к чему привыкли пользователи ПК и Mac, и подход этот дает пользователям намного больше возможностей, чем iOS.
В Android вы не сможете получить доступ к глубоко спрятанным системным файлам через обычный файловый менеджер или с помощью подключения к ПК. Но это не значит, что вы можете удалить по своей прихоти любой файл, какой захотите. Давайте посмотрим, как организованы типичные папки в памяти устройства, для чего они нужны и что из этого вы можете удалить, а что нет.
Иерархия памяти устройства на Android
Поскольку Android – это операционная система на базе Linux, в вашем телефоне файловая система также организована по принципу Linux. В этой системе на каждом устройстве есть шесть основных разделов: boot, system, recovery, data, cache и misc. Карты памяти microSD также имеют собственную иерархию памяти. Устройства, несущие на борту Android 7.0 Nougat, получили возможность непрерывного обновления за счет того, что в пару к системному разделу создается второй и один из них в фоне обновляется, а при перезагрузке происходит переключение, позволяющее обновленной системе заработать.
Вот краткое описание того, что содержится в каждой папке.
- boot – Эта папка содержит ядро, виртуальный диск и др., то есть то, что требуется для загрузки телефона, когда вы его включаете.
- system – Папка system содержит файлы операционной системы (также известные как образ системы), которые включают в себя также графический интерфейс Android и предустановленные приложения.
- recovery – Альтернативная возможность загрузить ОС, программы из папки recovery позволяют пользователю делать бэкапы других папок и восстанавливать их.
- data – Папка data сохраняет информацию пользователя, от контактов и сообщений до приложений и музыки, и вот к этому разделу вы имеете доступ через файловый браузер. После сброса до заводских настроек этот раздел стирается.
- cache – Android хранит здесь часто используемые данные и компоненты приложений. Этот раздел может быть стерт для устранения определенных проблем и автоматически восстановлен и обновлен со временем.
- misc – Этот раздел содержит другую важную информацию о настройках системы, такую как конфигурация USB, настроек сети вашего оператора и другие аппаратные настройки, которые в графическом интерфейсе отображаются в виде переключателей вкл./выкл.
Без root–прав пользователи Android могут иметь доступ только к разделу с данными, который открывается вам, когда вы подключаете устройство к своему ПК или используете файловый браузер. Если память вашего телефона может быть расширена при помощи карты, память карты также включается в этот раздел с данными, доступными через ПК или просмотрщик файлов.
Обычно у вас есть доступ только данным приложений, которые хранятся в разделе пользовательских данных. Для доступа к остальной памяти вам потребуются root-права
Приложения и папки в разделе данных
Итак, бегло окинув взглядом основные папки, мы отметили, что у нас нет доступа к загрузочным файлам, файлам восстановления и или системным файлам Android, когда мы просто просматриваем файлы при помощи браузера. Из чего следует утешительный вывод: нельзя просто так взять и вызвать своими действиями крах системы. Совсем другая ситуация возникает, когда у вас есть root-права. Так или иначе, с тем, что хранится в данном разделе, надо быть поаккуратнее: определенные приложения могут задействовать данные, которые здесь сохранены, и перемещение или удаление их может повлечь за собой нестабильную работу системы.
Теперь давайте посмотрим, что находится в разделе данных на вашем устройстве. Для того, чтобы это было возможно, в телефонах с Android версий Marshmallow или Nougat есть свой файловый менеджер, который дает доступ ко всему разделу. Эту опцию можно найти в меню Настройки- Память-Накопитель-Другое. Ряд аппаратов на более старых версиях Android могут иметь, а могут не иметь собственный файловый менеджер, зависит от производителя.
В качестве альтернативы есть множество сторонних приложений, доступных в Play Store, которые выполняют ту же самую роль, например, FX File Explorer или Total Commander.
Можно также управлять вашими файлами с вашего ПК при помощи подключения по USB. Стоит только удостовериться, что ваш телефон находится в режиме MTP (Передача файлов), чтобы вы могли видеть все свои файлы.
Получить доступ к памяти вашего устройства можно при помощи ПК или напрямую через файловый браузер
Если у вас есть ощущение, что память устройства выглядит переполненной и папок слишком много, приглядитесь к ним. Вы увидите многочисленные папки, связанные с приложениями, возможно, даже остатки от тех приложений, что вы уже удалили. Как правило, лучше не трогать никакие папки приложений, но если вы помните, что приложение было удалено, а папка от него осталась, ее удаление вреда не причинит. Скорее всего, она пустая или в ней остались какие-то бесполезные лог-файлы.
Даже если вы не устанавливали большого количества приложений, по умолчанию этот раздел с пользовательскими данными может содержать ряд папок – в них хранятся ваши контакты, музыка, картинки и все остальное. Вот самые основные папки, не связанные со сторонними приложениями, которые вы можете найти.
- Android – это место, куда по умолчанию сохраняются кэш приложений и данные. Эту папку не рекомендуется удалять, если вы не хотите потерять данные приложений. Удаление этой папки может привести к некорректной работе некоторых из них.
- Alarms, Ringtones, Notifications – как видно из названий, в этих папках хранятся аудиофайлы для будильников, рингтонов и уведомлений, которые могут быть использованы как дефолтными, так и сторонними приложениями.
- Cardboard – здесь хранятся данные для ряда приложений VR, а если таковых нет, она остается пустой.
- DCIM – здесь лежат фотографии, которые вы делали при помощи своего основного приложения камеры. Также вы можете увидеть такую папку и на карте microSD, если вы сохраняете фотографии и на нее.
- Downloads – здесь находится все, что скачано вами в веб-браузере, например, в Chrome или Firefox.
- Pictures, Music, Movies, Video – Это папки, которые по умолчанию используются вашими медиаприложениями. Некоторые приложения позволяют вам назначать другие папки, но большая часть медиаплееров по умолчанию будет использовать эти директории. Скриншоты чаще всего сохраняются в папке с картинками.
- Podcasts – Эта папка используется рядом приложений, чтобы отделять подкасты от остальных музыкальных файлов. Если вы не пользуетесь приложениями для прослушивания подкастов, она будет пустой.
Итак, какие папки мне можно (или нужно) удалять?
Не уверен – не удаляй. Это справедливо для всех папок приложений, и трогать их не стоит, за исключением тех случаев, когда вы точно знаете, что хотите сделать. Добавлять и удалять файлы из любых папок с медиа абсолютно безопасно, но постарайтесь в порыве наведения порядка не снести саму папку. Если вы видите, что папка пуста, например, ничего нет в папке Alarms, вы, можете подумать, что она и сама не нужна. Но, с другой стороны, папка не занимает много места. И возможно, она потребуется какому-либо приложению впоследствии, поэтому так ли вам необходимо ее удалять?
Со временем встроенная память вашего устройства будет содержать гораздо больше папок, чем было перечислено выше. Вы будете устанавливать и удалять все большее число приложений. Поэтому наводить порядок в своем устройстве никогда не повредит, ну, разве что вы вообще редко перемещаете файлы в своем телефоне, скачиваете и удаляете их. И еще, удаление пустой папки не освободит вам дополнительного места в памяти. Так что, если требуется выиграть место, лучше посмотрите, какие вы можете удалить ненужные приложения/фильмы, которые не станете пересматривать и т.п.
Теперь, когда вы получили более полную картину того, что это за папки хранятся в памяти вашего устройства, вам будет проще управлять своими файлами, не боясь «сделать что-нибудь не то».
Источник
How to Make App Folders on Android
Organize your apps and save screen space
What to Know
- Long-press an app and drag it onto another app to create a folder.
- Long-press the folder to rename it. (On some devices, tap the folder to open it, then tap the name to edit it instead).
- You can also drag the folder into the row of favorite apps on the bottom of the Home screen on Android phones.
This article explains how to create new folders on an Android device, how to rename those folders, and how to move them around your Home screen. The directions below should apply no matter who made your Android phone: Samsung, Google, Huawei, Xiaomi, etc.
How to Make a Folder
To create a folder, long-press an app. Press and hold a finger on the app until you feel a mild feedback vibration and the screen changes.
Then, drag the app onto another app to make a folder. This is the same as on iOS devices such as the iPad and iPhone.
Name Your Folder
Unlike iOS, Android doesn’t provide a default name for new folders; it appears as an unnamed folder. When a folder is unnamed, nothing displays as the name of the collection of apps.
To give the folder a name, long-press the folder. It opens, displays the apps, and launches the Android keyboard. Enter a name for the folder and tap the Done key. The name displays on the Home screen.
Some phones do this differently. On a Samsung or Google Pixel device, tap the folder to open it, then tap the name to edit it.
Add Your Folder to the Home Row
You can also drag the folder onto your favorite apps on the bottom of the Home screen on Android phones. That makes it two clicks to get to the app, but Google demonstrates this by grouping Google apps into a folder and putting it on the Home row at the bottom.
Some Things Do Not Drag Like the Others
Dragging order is important. You can drag apps onto other apps to make folders. You can drag apps into existing folders to add the app to the folder. You cannot drag folders onto apps. If an app runs away when you drag something on it, that could be what happened. The other thing you can’t do is drag Home screen widgets into folders. Widgets are mini apps that run continuously on the Home screen, and won’t run properly inside a folder.
Источник
Organizing your Source Files
Android applications should always be neatly organized with a clear folder structure that makes your code easy to read. In addition, proper naming conventions for code and classes are important to ensure your code is clean and maintainable.
Be sure to check out the Ribot Code and Style Guidelines for a more extensive breakdown of suggested style and naming guidelines.
The following naming and casing conventions are important for your Java code:
Type | Example | Description | Link |
---|---|---|---|
Variable | incomeTaxRate | All variables should be camel case | Read More |
Constant | DAYS_IN_WEEK | All constants should be all uppercase | Read More |
Method | convertToEuroDollars | All methods should be camel case | Read More |
Parameter | depositAmount | All parameter names should be camel case | Read More |
See this naming guide for more details.
Android classes should be named with a particular convention that makes their purpose clear in the name. For example all activities should end with Activity as in MoviesActivity . The following are the most important naming conventions:
Name | Convention | Inherits |
---|---|---|
Activity | CreateTodoItemActivity | AppCompatActivity , Activity |
List Adapter | TodoItemsAdapter | BaseAdapter , ArrayAdapter |
Database Helper | TodoItemsDbHelper | SQLiteOpenHelper |
Network Client | TodoItemsClient | N/A |
Fragment | TodoItemDetailFragment | Fragment |
Service | FetchTodoItemService | Service , IntentService |
Use your best judgement for other types of files. The goal is for any Android-specific classes to be identifiable by the suffix.
There are several best practices for organizing your app’s package structure.
The way to do this is to group things together by their category. Each component goes to the corresponding package:
- com.example.myapp.activities — Contains all activities
- com.example.myapp.adapters — Contains all custom adapters
- com.example.myapp.models — Contains all our data models
- com.example.myapp.network — Contains all networking code
- com.example.myapp.fragments — Contains all fragments
- com.example.myapp.utils — Contains all helpers supporting code.
- com.example.myapp.interfaces — Contains all interfaces
Keeping these folders in each app means that code is logically organized and scanning the code is a pleasant experience. You can see a slight variation on this structure as suggested by Futurice on their best-practices repo.
Alternatively, we can package-by-feature rather than layers. This approach uses packages to reflect the feature set. Consider the following package structure as outlined in this post:
- com.example.myapp.service.* — Is a subpackage for all background related service packages/classes
- com.example.myapp.ui.* — Is a subpackage for all UI-related packages/classes
- com.example.myapp.ui.mainscreen — Contains classes related to some app’s Main Screen
- com.example.myapp.ui.detailsscreen — Contains classes related to some app’s Item Details Screen
This feature allows you to place DetailsActivity , DetailsFragment , DetailsListAdapter , DetailsItemModel in one package, which provides comfortable navigation when you’re working on «item details» feature.
DetailsListAdapter and DetailsItemModel classes and/or their properties can be made package-private, and thus not exposed outside of the package. Within the package you may access their properties directly without generating tons of boilerplate «setter» methods.
This can make object creation really simple and intuitive, while objects remain immutable outside the package.
Resources should be split up into the following key files and folders:
Name | Path | Description |
---|---|---|
XML Layouts | res/layout/ | This is where we put our XML layout files. |
XML Menus | res/menu/ | This is where we put our AppBar menu actions. |
Drawables | res/drawable | This is where we put images and XML drawables. |
Colors | res/values/colors.xml | This is where we put color definitions. |
Dimensions | res/values/dimens.xml | This is where we put dimension values. |
Strings | res/values/strings.xml | This is where we put strings. |
Styles | res/values/styles.xml | This is where we put style values. |
See the full list of resources here and note the following:
- Don’t hardcode color hex values in the layout. Instead of hardcoding these values, be sure to move all colors into res/values/colors.xml and reference the colors in layouts with @color/royal_blue .
- Don’t hardcode margin / padding dimensions in the layout. Instead of hardcoding these values, be sure to move all dimension values into res/values/dimens.xml and reference these in layouts with @dimen/item_padding_left .
- To support multiple devices, we can then use the alternative resources system to provide different colors, strings, dimens, styles, etc based on the device type, screen size, API version and much more.
Be sure to start properly organizing your resources early on in the development of an application. Be sure to check out the Ribot Code and Style Guidelines for a more extensive breakdown of suggested style and naming guidelines.
Often there are questions about organizing not just the source files but also better organizing the application resources. In a modern app, there are often hundreds of different layout files, drawables, styles, etc and by default these are all grouped together in a flat list within a single subdirectory (i.e res/layout ). For now, keep the layout resource files in the same directory.
Refer to stackoverflow post for a discussion of explored options. The main problem is that if you try to use the nested resource layout approach, the current logic for the Android Studio’s Gradle plug-in will not update the resource files after they have changed for nested resource sets. The current implementation attempts to check the resource directories using startsWith(), so a directory structure that is nested (i.e. src/main/res/layout/layouts and src/main/res/layout/layouts_category2) will choose src/main/res/layout/layouts consistently and never actually update the changes. A result, you will you have to rebuild/clean the project each time whenever making layout file changes.
It is up to you to decide which of the aforementioned approaches suits your project best.
However, in general Java programming, packaging apps by feature is considered preferable and makes a lot of sense.
Источник