- 7 Best Android File Manager Apps for 2021
- 1. Amaze File Manager
- 2. Solid Explorer
- 3. MiXplorer
- 4. ES File Explorer
- 5. Astro File Manager
- 6. X-Plore File Manager
- 7. Total Commander
- Как устроен билд APK файла внутри
- Процесс создания APK и компиляции кода
- Рассматриваемые темы
- Архитектура процессоров и зачем нужна виртуальная машина
- Понимание Java виртуальной машины
- Андроид виртуальная машина
- Комплияция в .dex файл
- ART против Dalvik
- Каждый этап описанного процесса
- Source Code (Исходный код)
- Resource Files
- AIDL Files
- Library Modules
- AAR Libraries
- JAR Libraries
- Android Asset Packaging Tool
- resources.arsc
- D8 и R8
- Dex and Multidex
7 Best Android File Manager Apps for 2021
One of the downsides of Android compared to desktop operating systems is its apparent lack of options to deep-dive into the OS and manually manage your files. While an unrooted Android OS doesn’t, by default, offer many of these options, there are many very good file manager apps that will give you that granular control you want.
Whether you want to explore the root directory of your phone, encrypt apps, or just manually move, create and delete folders on your device, these file manager apps will see to your needs.
Also read: How to Download Android Apps Not Available in Your Country
1. Amaze File Manager
Any Android app that’s free and open source gets instant bonus points in our books. Amaze File Manager follows up on that by delivering a file manager that may be less feature-rich than some of the other options on this list but makes up for it in a simplicity that lets you quickly browse what you need.
That’s not to say this simple file manager is completely lacking in features. You can use multiple tabs, switch out themes, and quickly do all the usual copying, cutting, compressing and extracting you want from a file manager. Rooted users can also gain root access of course, and – crucially – it’s both free and ad-free.
As is often the case with open source apps, there are a few bugs and kinks to iron out here and there, but that’s part of the parcel. We’re hoping that it receives another update soon.
2. Solid Explorer
One of the best things about Solid Explorer is its dual-pane design, which makes it quick and easy to sift through all your Android files. It has a particular focus on security, letting you encrypt any files and folders with a password, which you can subsequently open with a fingerprint sensor.
The two-panel design essentially creates two separate windows in Solid Explorer, letting you drag-and-drop files and folders between them much like you would in a desktop OS. There’s plenty of customization in terms of colors and themes. Even more functionality gets unlocked on a rooted device, where you can use this as a proper root explorer.
The catch is that Solid Explorer is a paid app, but you can try it out for 14 days free of charge before deciding if it’s for you.
3. MiXplorer
One of the best-kept secret file managers for Android, MiXplorer has long been a favorite of the XDA community, letting you not only explore files on your device but also across your entire personal network (including FTP, LAN and cloud-based storage). It packs plenty of customization, allows for robust tabbed browsing, and lets you create chains of commands using the “Tasks” feature.
You can easily view various formats of files thanks to an integrated reader that reads the EPub, MobiPacket and PDF formats, as well as a comprehensive media player, image viewer and text editor.
You don’t need to have a rooted device to use MiXplorer, but if you do, then even more functionality opens up in the form of data backup and extra management options. It’s ad-free, completely free, and supported by people who are really in the know.
4. ES File Explorer
ES File Explorer is one of the oldest and most reliable file explorers on this list. It would actually sit at number one if only it were ad-free. It’s understandable, though, as for all the time and effort the developers have put into it, they deserve some financial imbursement for their troubles.
The catch is that ES File Explorer was removed from the Play Store in April 2019, possibly due to the fraudulent activities of one of the company’s subdivisions, DO Global. To use it today, you’ll need to download it from a site like APKPure, where the newest versions are still being released.
ES File Manager still comes with its niche gesture feature where you can record certain gestures that will perform functions within the app. It also allows you to save shortcuts to folders and files on your home screen, making it almost fully desktop-esque. It comes with built-in viewers and players for various file types, so you can watch videos and play music directly from it. There is also a task manager where you can kill tasks and free up some memory on your device.
It supports rar and zip compression/decompression and even comes with its own note editor. Supporting cloud storage, Bluetooth file browsing, remote file access, wireless PC file transfer, an SD card analyst, and a host of other features, it’s a Swiss Army knife of an app. It’s theme-able too. Some may be put off by how bloated it is with its features, the ads and its material design, but if you’re looking for a jack-of-all-trades, this is your best bet.
5. Astro File Manager
The first thing you see when you go on Astro File Manager’s Google Play page is “No Ads.” This banner runs across its icon like a company motto. For anyone who wants a great file browser that is ad-free, look no further. In addition to helping you organize your files through its file manager, it comes with a handy memory cleaner.
It allows you to compress and decompress files in rar and zip formats. You can also bookmark settings, files and folders. It comes with its own media player that allows you to play videos and music, smoothly peruse through your collection of pictures, and manage both your cloud and internal storage.
6. X-Plore File Manager
It’s time to bring the pane – two panes that is. What’s unique about X-Plore is it gives you the option to handle windows at the same time by providing you with a dual-pane explorer so you can copy files across and compare two folders. In addition to all of this, it allows you to see inside APK files and to compress folders into APK packages.
It has a disk map that allows you to see which files eat up the most disk space and comes with its very own PDF viewer. You can wirelessly manage your files from a PC’s web-browser. It comes with cloud storage access and a video player that allows subtitles. This is all just the tip of the iceberg.
7. Total Commander
The classic, the original and my personal favourite, Total File Commander comes with a simple but powerful user interface. A few people may consider it anachronistic and a little homely, but it’s as good as its Windows counterpart and gets the job done.
It’s completely pluggable, which means you can add more features to it using plugins. It has a media player that can stream directly from LAN, WebDAV and cloud plugins, and you can bookmark and save folders as shortcuts. For those who have rooted devices, it has a capable root explorer.
Now that you’ve picked the Android File Manager of your dreams (or at least needs), follow our guide on how to remove leftover files and folders after uninstalling Android apps. Or for something a little lighter, see the best Android screen recording apps.
Источник
Как устроен билд APK файла внутри
Процесс создания APK и компиляции кода
Рассматриваемые темы
- Архитектура процессоров и необходимость для виртуальной машины
- Понимание Java виртуальной машины
- Компиляция исходного кода
- Виртуальная машина Андроид
- Процесс компиляции в .dex файл
- ART против Dalvik
- Описание каждой части билд процесса
- Исходный код
- Файлы ресурсов
- AIDL файлы
- Модули библиотек
- AAR библиотеки
- JAR библиотеки
- Android Asset Packaging Tool
- resources.arsc
- D8 и R8
- Dex и Multidex
- Подписывание APK файла
- Ссылки
Понимание флоу процесса билда APK файла, среда исполнения и компиляция кода
Этот пост нацелен быть отправной точкой для разработчиков, чтобы они ближе познакомились с билд процессом и созданием APK файла.
Архитектура процессоров и зачем нужна виртуальная машина
Андроид после того как вышел в 2007 году претерпел множество изменений связанный с билд процессом, средой исполнения и улучшениями производительности.
У андроида много удивительных характеристик и одна из них разные архитектуры процессоров такие как ARM64 и x86
Невозможно скомпилировать код, который поддерживает каждую архитектуру. Вот именно поэтому используется Java виртуальная машина.
Понимание Java виртуальной машины
JVM это виртуальная машина, позволяющая устройству запускать код, который скомпилирован в Java байткод
Используя JVM, вы избавляетесь от проблемы с разной архитектурой процессоров.
JVM предоставляет переносимость и она позволяет запускать Java код в виртуальной среде, вместо того, чтобы запускать его сразу «на железе»
Но JVM была создана для систем с большими мощностями по ресурсам, а наш андроид имеет сравнительно мало памяти и заряда батареи.
По этой причине Google создал адаптированную под андроид виртуальную машину, которая называется Dalvik.
Компилируем исходный код
Наш исходный Java код для андроида компилируется в класс файл .class с байткодом с помощью javac компилятора и запускается на JVM
Для котлина есть kotlinc компилятор, который делает совместимый с Java байткод.
Байткод — это набор инструкций, который выполняется на целевом устройстве.
Java байткод — это набор инструкций для Java виртуальной машины.
Андроид виртуальная машина
Каждое андроид приложение работает на своей виртуальной машине. С версий 1.0 до 4.4, это был Dalvik. В андроид 4.4, вместе с Dalvik, Google представил в качестве эксперимента новый андроид runtime, который назывался ART
Сгенерированный класс файл .class содержит JVM Java байткод.
Но у андроида есть свой собственный оптимизированный формат байткода, который называется Dalvik bytecode — это просто инструкции машинного кода для процессора также как и JVM байткод.
Комплияция в .dex файл
Во время компиляции происходит конвертация .class класс файл и .jar библиотеки в один classes.dex файл, который содержит Dalvik байткод.
Команда dx превращает все .class и .jar файлы в один classes.dex файл, который написан с форматом Dalvik байткода.
Dex — это аббревиатура с английского — Dalvik Executable.
ART против Dalvik
C версии 4.4 андроид мигрировал на ART. ART также работает с .dex файлом.
Преимущество ART над Dalvik проявляется в том, что приложения запускаются быстрее, потому что весь DEX байткод транслируется в машинный код во время установки, не нужно дополнительного времени на компиляцию в рантайме.
ART и Dalvik совместимы, так что приложения разработанные для Dalvik должны работать и на ART.
Компиляция Dalvik (JIT- just in time) имела такие минусы как — быстрая трата батареи, лаги в приложениях и плохой перформанс. В Dalvik трансляция происходит только когда это нужно. Мы открываем новый экран и только в этот момент происходит трансляция, за счет этого установка происходит быстрее, но при этом проседает перформанс.
Это причина по которой Google сделал Android Runtime (ART).
ART — основан на AOT (ahead of time) компиляции, она происходит до того как приложение запустится.
В ART компиляция происходит во время установки приложения. Это ведет к более долгому времени установки, но уменьшает трату батареи и избавляет от лагов, которые были на Dalvik.
Несмотря на то, что Dalvik был заменен на ART, .dex формат файлов еще используется
В андроид 7.0 JIT вернулся. Гибридная среда сочетает фичи как от JIT компиляции так и
от ART
Среда запуска байткода это очень важная часть андроида и она вовлечена в процесс запуска и установки приложения
Каждый этап описанного процесса
Source Code (Исходный код)
Это Java и Kotlin файлы в src пакете.
Resource Files
Файлы находящиеся в директории с ресурсами
AIDL Files
AIDL — аббревиатура Android Interface Definition Language, позволяет вам описать интерфейс межпроцессорного взаимодействия.
AIDL — может использоваться между любыми процессами в андроиде.
Library Modules
Модули библиотек содержат Java или Kotlin классы, компоненты андроида и ресурсы.
Код и ресурсы бибилотеки компилируются и пакуются вместе с приложением.
Поэтому модуль библиотеки может считаться компайл тайм артефактом.
AAR Libraries
Андроид библиотеки компилируются в AAR — android archive файл, который вы можете использовать как зависимость для вашего android app модуля.
AAR файлы могут содержать андроид ресурсы и файл манифеста, что позволяет вам упаковать туда общие ресурсы такие как layouts и drawables в дополнение к Java или Kotlin классам и методам.
JAR Libraries
JAR это Java библиотека и в отличие от AAR она не может содержать андроид ресурсы и манифесты.
Android Asset Packaging Tool
AAPT2 — аббревиатура (Android Asset Packaging Tool) — компилирует манифест и файлы ресурсов в один APK.
Этот процесс разделен на два шага компиляцию и линковку Это улучшает производительность так как если вы поменяете один файл, вам нужно компилировать только его и прилинковать к остальным файлам командой ‘link’
AAPT2 может компилировать все типы андроид ресурсов, таких как drawables и XML файлы.
При вызове AAPT2 для компиляции, туда передается по одному ресурсному файлу на каждый вызов
Затем APPT2 парсит файл и генерирует промежуточный бинарный файл с расширением .flat
Фаза линковки склеивает все промежуточные файлы сгенерированные в фазе компиляции и дает нам на выход один .apk файл. Вы также можете сгенерировать R.java файл и правила для proguard в это же время.
resources.arsc
Полученный на выходе .apk файл не включает в себя DEX файл, APK не подписан и не может быть запущен на устройстве.
APK содержит AndroidManifest, бинарные XML файлы и resources.arsc
resource.arsc содержит всю мета информацию о ресурсах, такую как индексы всех ресурсов в пакете
Это бинарный файл и APK который может быть запущен. APK который вы обычно создаете и запускаете не сжат и может быть использован просто посредством размещения в памяти.
R.java файл это выходной файл вместе с APK ему назначен уникальный id, который позволяет Java коду использовать ресурсы во время компиляции.
arsc это индекс ресурса который используется во время запуска приложения
D8 и R8
Начиная с андроид студии 3.1 и далее, D8 был сделан дефолтным компилятором.
D8 производит более маленькие dex файлы с лучшей производительностью, если сравнивать со старым dx.
R8 используется для компиляции кода. R8 это оптимизированная версия D8
D8 играет роль конвертера класс файлов в Dex файлы, а также производит дешугаринг функций из Java 8 в байткод, который может быть запущен на андроиде
R8 оптимизирует dex байткод. Он предоставляет такие фичи как оптимизация, обфускация, удаление ненужных классов.
Обфускация уменьшает размер вашего приложения укорачивая названия классов, методов и полей.
Обфускация имеет и другие преимущества для предотвращения реверс инжиниринга, но основная цель уменьшить размер.
Оптимизация уменьшает размер Dex файла путем переписывания ненужных частей кода и инлайнинга.
С помощью дешугаринга мы можем использовать удобные фичи языка Java 8 на андроиде.
Dex and Multidex
R8 дает на выходе один DEX файл, который называется classes.dex
Если количество методов приложения переваливает за 65,536, включая подключенные библиотеки, то произойдет ошибка при билде
Источник