Data local bin android

Быстрый старт Data Binding в Android

Введение

Профессионально андроид-разработкой занимаюсь чуть больше года, до этого разрабатывал по Windows Phone и мне понравилась возможность связывать данные из вью модели с самим View при помощи механизма Bindings. А после изучения RX, многие задачи стали решаться более чисто, вью-модель полностью отделилась от View. Она стала оперировать только моделью, совсем не заботясь о том, как она будет отображаться.

В Android такой строгости я не заметил, Activity или Fragment как простейшие представители контроллера чаще всего имеют полный доступ как ко View, так и к модели, зачастуя решая, какой View будет видим, решая таким образом чисто вьюшные задачи. Поэтому я довольно радостно воспринял новость о появлении Data Binding в Android на прошедшем Google IO.

Пока что это только бета релиз, но уже можно протестировать функционал и увидеть направление, в котором двигаются разработчики из Google.

Начало

Я использую Android Studio 1.3. Data binding поддерживает Android 2.1 и выше (API level 7+).

Для сборки используется новый android плагин для Gradle (нужна версия 1.3.0-beta1 и старше). Так как связи отрабатываются во время компиляции, нам понадобиться ещё один плагин к Gradle ‘com.android.databinding:dataBinder:1.0-rc0’. В отличие от того же Windows Phone где механизм привязок реализован глубоко по средством DependencyProperty и в RealTime, в Android эта функция реализуется как бы поверх обычных свойств, во время компиляции и дополнительной кодогенерации, поэтому в случае ошибок будьте готовы разбирать ответ от компилятора.

Итак, заходим в файл build.gradle, который лежит в корневом каталоге проекта (в нём идут настройки Gradle для всего проекта). В блоке dependencies вставляем:

Теперь подключим плагин к конкретному модулю, откроем build.gradle файл, который лежит внутри модуля. По умолчанию app/build.gradle и добавим строчку:

Настройка Layout

Мы должны обернуть наш внешний View в тег
Уже сейчас можно начать его использовать класс Binding для доступа к элементам интерфейса, без использования findViewById. В MainActivity добавим поле и перепишем метод onCreate:

Название поля берётся из Id View, без Id в биндере поле не появиться, если изменить Id View, то поле в биндере сразу же переметнуться. Если с зажатым CTRL нажать на название поля View, то сразу перейдешь к нему в файле разметки. Как по мне так уже одного такого функционала достаточно для того чтобы начать использовать биндинги.

Привязка данных

Например у нас есть карточка пользователя имя и возраст.

Изменим Layout, заменим содержимое LinearLayout на:

И в onCreate заменим последнюю строку на:

Запускаем. Всё работает.
Наверное у всех проектах в активити или в фрагментах встречается такие строчки:

Тут то мы и начинаем использовать непосредственно привязки данных. Перепишем модель:

И добавим в Layout:

На красные выделения студии игнорируем.
Так как мы используем класс View, то его нужно импортировать, добавим в ноду
Или используем его вместе с названием пакета:

Так же возможно в ноде

Конвертеры

Импорт в свою очередь даёт возможность писать конвертеры. Добавим в модель поле с датой рождения и удалим возраст:

Импортируем его в разметку:

Обратная связь и Binding

Попробуем сменить имя пользователя.
Добавим в Layout:

Запускаем и кликаем, тост всплыл, но имя не изменилось. Это случилось из-за того, что модель ни как не известила binder о своём изменении.

Можно создать новую модель и вставить её, но с точки зрения памяти это расточительно:

Или вытащить старую, заменить данные и вставить опять:

Но тогда обновятся все View, связанные с этой моделью. Лучшим вариантом будет связать модель с binder, чтобы она могла его оповестить о своём изменении. Для этого перепишем класс модели, добавив геттеры и сеттеры,

помечая геттеры атрибутом @Bindable, и добавив в сеттеры вызов notifyPropertyChanged(BR.lastName);

Видим новый класс BR, в котором содержатся идентификаторы полей, чьи геттеры помечены атрибутом @Bindable . В Layout оставляем android:text=»@«, меняем только isAdult на adult, c ‘is’ в названии поля возникли проблемы. Запускаем всё работает.

ObservableFields

В пакете android.databinding есть классы, которые могут упростить нотификацию binder об изменении модели:

  • Обёртки над элементарными типами
  • ObservableField
  • ObservableArrayMap
  • ObservableArrayList

Попробуем изменить модель:

По коллекциям аналогично, единственное приведу пример обращения ко ключу к Map:

Из View в Model

Теперь попробуем взять новое имя из UI, привязав EditText к некоторой модели. Так как внутри EditText крутится Editable, то и привязать будет к
Изменю MainActivity:

Читайте также:  Yandex browser android setting

А в разметку добавлю:

Вот тут возникает проблема, если привязать ObservableField к EditText, то всё будет работать только в сторону View. Как я понял, проблема в том, что Editable, который лежит внутри ObservableField, отличается от того, который лежит внутри EditText.

Если у кого есть идеи — делитесь.

Очень любопытно было увидеть библиотеку для поддержки Data Binding в Android от Google. В документации тоже нет информации про обратную связь данных, но я надеюсь на скорую её реализацию. После официального выхода стабильной версии можно будет посмотреть на интеграцию с JavaRX.

[ Оффициальная документация ]
[ Ссылка на мой простенький пример ]

Источник

Как найти папки data и system на Android: простой путь

Иногда пользователю устройства с системой от Google приходится столкнуться с нетривиальными задачами, решение которых требует сначала найти папки data и system, где находятся важные файлы. Как это сделать на Android, мы расскажем в статье.

В первую очередь, пользователю понадобится файловый менеджер, который показывает не разбивку по мультимедийным данным, а реальное содержание диска. Иногда такие менеджеры встроены в прошивку, в противном же случае можно обратиться в Play Store, где есть и бесплатные варианты.

Далее с помощью него выходим в корень системы, обозначенный как «/». В ряде менеджеров для быстрого доступа к оному есть отдельный пункт в Action Bar, а где-то нужно просто нажать на знак «..» или выбрать «Корень файловой системы». Именно тут на Android и можно обнаружить папки data и system, имена их, кстати, тоже начинаются с косой черты.

Стоит обратить внимание, что данные разделы, особенно второй, содержат критически важную информацию. Если у пользователя имеется root‑доступ и он удалит файлы в папках data и system, это может вызвать проблемы с работоспособностью устройства.

Заметили ошибку? Выделите её и нажмите Ctrl+Enter или сообщите здесь.

Источник

Как открыть файл .bin файл на Андроиде?

Бывают ситуации, когда пользователям необходимо открыть файл формата «.bin» на Андроид смартфоне. Изначально система смартфона не позволяет открывать эти файлы для просмотра, поскольку это набор исполняемых команд для компьютера. В статье рассмотрим как можно просмотреть такой файл на Андроиде или с компьютера.

Что такое BIN формат?

Бин файл с расширением «.bin» на конце – это набор строк в бинарном формате, который состоит из одной или нескольких команд. Содержимое файла кодируется в привычный текст, но изначально идет в двоичном формате и состоит из нулей и единиц (0 и 1).

Обратите внимание, что запускать данный файлы может быть опасно, тем более на компьютерах. Если вы скачали что-то из Интернета – исполняемый файл может содержать угрозы и вирусы.
Если запустить такой файл в Windows – компьютер выполнит по очереди все команды записанные внутри. Обычно там содержатся ключи активации к программам, играм, различные «Кряки» и «Таблетки» к приложениям.

По этому если вы собрались запускать такой файл необходимо понять что это вообще и для чего и откуда вы его скачивали.

Как открыть .bin файл на телефоне?

Что бы увидеть содержимое файла можно попытаться открыть его в текстовом формате в блокноте на ПК или Андроид. Если у вас под рукой только смартфон. Понадобиться зайти в файловый менеджер (можно использовать встроенный в ваш смартфон):

  • Если загружали из интернета файл скорее всего лежит в папке «Загрузки» или «Downloads».
  • Найдите файл в памяти смартфона и нажмите «Еще» или иконку с тремя точками «…».
  • Затем выберите из списка «Открыть как» или «Открыть с помощью» или «Открыть как текст». Названия пунктов могут отличаться в зависимости от модели вашего смартфона.
  • Запустить данный файл прямо на смартфоне скорее всего НЕ ПОЛУЧИТСЯ, т.к. он предназначит для компьютера. Но просмотреть его содержимое вполне реально.

Лайфхак: если открыть через файловый менеджер не удается можно переименовать файл. Вместо расширения «имя_файла.bin» изменить на «имя_файла.txt». Мы получим текстовый файл, который можно открыть в любом текстовом редакторе и увидеть его содержимое. Затем измените расширение .txt обратно на .bin.

Второй способ

Если открыть БИН на смартфоне не получается или оказалось проблематично можно воспользоваться компьютером. Для этого достаточно перекинуть файл по USB кабелю на ваш ПК. Можно скопировать на любой диск или смартфон. Не запускайте файл двойным кликом! Сначала просмотрите его содержимое:

  1. Кликните правой кнопкой мыши по файлу.
  2. Наведите на пункт меню «Открыть с помощью».
  3. В выпадающем окне выберите вариант «Блокнот».

Открываем BIN файл на компьютере

Если вы хотели загрузить файлы игры или образ диска – вам понадобиться специализированная программа. Для Андроида таких программ нет, а для настольного пк можно выбрать одну из списка ниже:

Программы для просмотра и редактирования BIN файлов

Если возникла острая необходимость увидеть содержимое именно со своего смартфона – можно установить бесплатную программу для просмотра и редактирования БИН содержимого. В Google Play достаточно набрать в поисковой строке «Bin редактор», затем загрузить и установить любую программу. Можно использовать универсальный конвертер ISO Extractor или специальную утилиту BIN Opener.
Для большинства программ потребуется включить отладку по USB в настройках смартфона согласно документации.

Читайте также:  Eobd facile premium для андроид

Евгений Загорский

IT специалист. Автор информационных статей на тему Андроид смартфонов и IOS смартфонов. Эксперт в области решения проблем с компьютерами и программами: установка, настройка, обзоры, советы по безопасности ваших устройств. В свободное время занимается дизайном и разработкой сайтов.

Источник

Android: разрешение запрещено для / data / local / tmp / *

Я пытаюсь запустить сценарий оболочки через приложение Android. У сценария есть команда, которая просто запускает банку на устройстве. Когда я запускаю эту команду непосредственно в оболочке с помощью adb, все работает нормально. Но когда я запускаю его через скрипт с помощью приложения Android, я получаю исключение, исключенное из разрешения (open failed: EACCES (Permission denied)) для файлов, созданных в папке / data / local / tmp. Может ли кто-нибудь помочь в решении этой проблемы?

Это то, что выглядит мой манифест

Если я правильно понял сценарий, вы создаете сценарий «на лету» и используете /data/local/tmp в качестве простого места, которое является общедоступным и исполняемым. Однажды это было возможно. Но в последних версиях Android безопасность была ужесточена.

Приложение может выполнять файлы под /data/data/$ . Вы можете использовать getContext (). GetFilesDir (), чтобы надежно получить полный путь. Обратите внимание, что вам все равно нужно использовать chmod 500 чтобы убедиться, что файл имеет разрешение на выполнение.

Если у вас есть исправленные исполняемые файлы (бинарные файлы или скрипты), которые необходимо установить с вашим приложением, есть хитроумный трюк, позволяющий установщику системного пакета заботиться обо всем этом: убедитесь, что файл имеет имя « lib something .so» «И поместите его в каталог /libs/armeabi в корне проекта Eclipse. После установки файлы будут присутствовать в getContext (). GetApplicationInfo (). NativeLibraryDir каталог с установленными разрешениями.

PS Вам не нужно разрешение WRITE_EXTERNAL_STORAGE для работы (возможно, вам это нужно для других вещей, которые делает ваше приложение).

PPS Вы можете запускать сценарий оболочки из любого места, включая /sdcard , и для сценария вам не нужны исполняемые разрешения. Вместо этого используйте sh -c source full.path.to.script .

Я думаю, причина в том, что ваш Андорид не был укоренен. «/ Data» имеют разрешение root. Поэтому сначала запустите свой телефон и дайте своему приложению разрешение. Вы можете попробовать команду: «su» int изменить оболочку на root.

Вы можете использовать интерфейс adb для копирования и / или перемещения файлов в папку /data/local/tmp но если вы хотите использовать / видеть их в приложении терминала, вам нужно сначала (в интерфейсе adb)

Затем создайте папку внутри папки. пример

Следующий изменить разрешения

Теперь у вас есть папка, которую вы можете читать и писать.

Несколько вещей, которые я хотел бы знать, это то, как заставить систему думать, что su бинарный файл находится в папке /system/bin (без копирования), потому что я могу получить только доступ tmp … root, потому что даже с доступом root, я Не может повторно установить системный каталог как rw потому что zte-paragon имеет свой системный раздел, отформатированный как файловая система только для чтения

Убедитесь, что местоположение /data/local/tmp выполнено на вашем устройстве:

Если это не так, вы ничего не можете сделать, и вам нужно использовать стандартное хранилище (внутреннее /data/data/ или external /sdcard/ ).

Убедитесь, что вы сделали файл доступным для чтения.

Источник

Android Shell Command Reference

Clone this wiki locally

#The Android Shell

A «shell» is a program that listens to keyboard input from a user and performs actions as directed by the user. Android devices come with a simple shell program. This shell program is mostly undocumented. Since many people are curious about it I thought I’d write up some documentation for it.

The built-in shell has very limited error handling. When you type a command name incorrectly it will say «permission denied», even though the real problem is that it couldn’t find the command:

#The PATH variable

The Android shell will run any program it finds in its PATH. The PATH is a colon (‘:’) seperated list of directories. You can find out what your shell’s PATH is set to by using the built-in echo command:

Depending upon your shell, you may see a different result.

#Built in Commands

Every shell has a few built-in commands. Some common built-in commands are:

  • echo — prints text to stdout.
  • set — sets shell variables
  • export — makes shell variables available to command-line programs
  • cd — change the current directory.
  • pwd — print name of the current directory.

#Commands To find out what commands you have available to you, use the «ls» command on each of the directories in the PATH variable.

Читайте также:  Облако для андроид cloud

##Finding documentation for the Android commands.

Many of the Android commands are based on standard Linux (or bsd) commands. If you’re curious about a command, you can sometimes learn how it works by using the «man» command on a desktop Linux or OSX (Apple Macintosh) computer. The Linux or OSX version of the command may be different in details, but much of the documentation will still apply to the Android version of the command.

Another source of documentation for people without a Linux or OSX machine handy is to use a web browser and use a web search engine to search for the text: «man Linux command-name».

##List of commands

The following is a list of the commands that are present on a Nexus S phone running an Android 2.3.3 «user-debug» build. Many of these commands are not present on a «user» phone. (They are missing from a «user» phone because they are specific to developing or debugging the Android operating system.)

Notice that by default there is no /data/local/bin directory. You can create this directory using the «mkdir» command if you like.

The /sbin directory exists, but you don’t have permission to access it. You need root access. If you have a developer phone, or otherwise have root access to your phone you can see what’s in this directory.

Notice that the shell prompt changes from a ‘$’ to a ‘#’ to indicate that you have root access.

Notice also that neither of the /sbin commands are useful to the shell — the adb and ueventd files are ‘daemon’ programs used to implement the Android Debugger «adb» program that is used by developers.

Vendor/bin is where device vendors can put device-specific executables. These files are from a Nexus S.

This directory does not exist on a Nexus S.

am is the Android Activity Manager. It’s used to start and stop Android activities (e.g. applications) from the command line. Type am by itself to get a list of options.

Command line audio file player.

Used to apply patches to android files.

Command line audio recorder.

Backup manager — type command by itself to get documentation.

Draws the boot animation. You may have to reset your phone to get out of this.

Copy the contents of a file to standard output.

Change the mode of a file (e.g. whether it can be read or written.)

Change the owner of a file.

Compare two files byte-by-byte

The dalvik virtual machine. (Used to run Android applications.)

Prints the current date and time

Convert and copy a file. By default copies standard in to standard out.

Shows how much space is free on different file systems on your device.

Shows the current configuration of network interfaces (IP, MAC address etc)

Shows the current processes using the network interfaces (top, but for networks)

Manage the firewall

Send signals to processes.

Used to set up a file system link.

Prints the Android runtime log.

Make a directory.

A program that sends random events, used to test applications. (Like having a monkey playing with the device.)

Move a file from one directory to another. (Only on the same file system. Use «cat a > b» to copy a file between file systems.

List active processes.

Reboot the device.

Remove a directory.

Starts the Android runtime.

Stops the Android runtime.

Shows which processes are currently using the most CPU time.

Prints how long your device has been running since it was last booted.

Secure copy program. (Used to copy files over the network.)

Used to administer SQLite databases.

System trace command — use to see what system calls a program makes.

Start a shell with root privileges.

#Versions of the Android Shell

  • Android 1.0 used a shell that had no tab completion or history editing.
  • Android 2.3 added history editing. You can for example use the up/down arrows to edit previous commands.

Busybox is a program that contains a shell and a set of command line utilities. Search Android Market for «Busybox» and you should find some versions you can install. The Busybox shell includes tab completion and history editing. Some versions of Busybox for Android do not require that you root your phone.

You can install the full Debian shell and utilities. (Debian is a popular desktop Linux distribution.) I don’t know the details, and it may require a «rooted» phone. Try a web search for «Debian Android install».

Some custom ROMs come with their own shells and utilities. If you are using a custom ROM, check its documentation to find out what’s available.

Источник

Оцените статью