Мой опыт разработки с использованием андроид устройства
Как же люди любят упрощать сложное и усложнять простое, ну или как провести свои выходные без пользы.
Как все начиналось.
А начиналось все как обычно с разматывания губы на тему вот сейчас как перейду с ПК на планшет, да как все заиграет.
Раньше (недели две назад) я постоянно задумывался почему так мало слышно о разработке пусть даже front-end’a на мобильных устройствах (нет, не под мобильные, а именно с мобильных устройств).
И думал я, что может только у меня такая потребность возникла. Что только я мучаюсь с подготовкой к работе. Ведь, чтобы развернуть бурную рабочую деятельность, мне нужно сперва сварить кофе, уложить всех спать, выгнать кота. А с мобильным устройством все проще. И уж если куплю планшет, да его настрою, будет у меня и мобильность, и скорость, да и лёгкость в движениях появится=)
И вот «летящей походкой я вышел за . », то есть за планшетом, и вернулся со средним, ну ладно, бюджетным «китайцем».
Решил, что рута я сбивать не буду, дефолтную систему сносить не буду, а то вдруг не просто так люди на ПК до сих пор работают.
Ах, этот дивный новый мир.
Признаться, за время работы на ПК я уже успел пристреляться. И имею представление, что сначала нужно настроить среду разработки, так сказать, разложить инструменты.
Поэтому первое, что я сделал – удалил все лишнее и полазили по настройкам, чтобы ничего не раздражало (это подробно думаю описывать не стоит, каждый сам под себя точит все свои инструменты). Далее по списку:
Войти в аккаунт (почта, браузер, GitHub)
настроить редактор кода
настроить хотя бы подобие IDE
Как вы понимаете с первым пунктом ничего сложного, хотя и в этом случае пришлось немного потыкаться. Приложения GitHub предоставленные в плеймаркете(то что попалось мне из 5 установленных, в том числе и сам GitHub). Позволяют, максимум, посмотреть историю, комментарии (смотреть и отвечать), но создавать и изменять контент и запросы не могут. Так что нельзя назвать это полноценной заменой для андроида.
В итоге на первых порах, достаточно браузерной версии гит, вот только если хочешь добавить или изменить папку, то быстро сделать это не получится, нужно выгружать, менять и загружать папки обратно (создаёшь папку с файлом, прописывая путь, а затем все файлы в папку загружаешь через appload file). Как вы понимаете это не удобно если нужно перенести проект на GitHub через планшет.
С редакторами немного проще. Почти каждое третье справляется с элементарными нуждами, да ещё имеет возможность просмотра результата фронт-енда в браузере. Однако не все из них отображают сайт корректно (как и когда просто открытая через проводник страница не подгружает css и js файлы, а просто выводит голый скелет сайта) ещё меньше из них имеет возможность перейти по внутренней ссылке сайта, в случае многостраничного сайта.
В итоге из порядка 15 я нашел около 3 которые мне подходят. Однако в дальнейшем я решил использовать в качестве быстрого редактора Acode, хотя он больше похож на ide чем на простой редактор.
Двигаемся дальше. Что же мне нужно от IDE.
Наличие консоли при тестировании
Интеграция с GitHub
Удобство в использовании (в частности расположение вкладок и настройки)
Терминал для Nodejs
Теперь посмотрим, что я нашел:
Хоть в play market и написано, что это IDE для веб разработки, но работать на нем неудобно.
Полноценных снипетов нет (нет автоопределения, вставляется только тег без символов, нет автоопределения атрибутов тегов). Из удобных только автозакрытие тега (в случае написания «</» программа сама выбирает ближайший закрываемый тег)
Интеграция с git только за плату.
Консоль даже искать не стал после увиденного теста в браузере.
Итог: возможно платная версия работает лучше, но что-то мне в это не верится. Хотя могу выделить пару плюсов (панель символов, удобные вкладки для перехода между файлами)
Снипеты с кратким описанием и опциями (с возможностью расширения)
Хоть и есть поиск ошибок, но он не работает на js, css, html. Поэтому думаю что эта опция не работает без дополнительной возни.
Интеграция с git представлена достаточно удобно (легко регить легко коммитить при сохранении, но нельзя перемещать, добавлять файлы)
Есть интеграция с ftp
Все действия и визуализация контента удобны и понятны.
Терминала не обнаружил, но думаю это не проблема для работы во front-end разработке.
Отдельно хотел бы обговорить что из ограничений бесплатной версии только невозможность выбрать цвет темы (но не редактора(там около 10 вариантов разной подсветки)).
При всем при этом у этой программы открытый код,
Spck (editor и pro)
Снипеты есть, но реализованы чуть хуже (иногда работают криво).
В css и js есть проверка и подсветка линий с ошибками (по крайней мере в случае неожиданного знака).
В pro версии есть доступ к терминалу с nodejs, npm, gulp и т.д.
Интеграция с GitHub есть и представлена гораздо шире. Есть возможность добавлять и синхронизировать директории.
Больше возможностей для работы
Только хочу предупредить – чтобы завязать приложение с GitHub помимо токена нужно полностью заполнить паспорт (я сам вначале не полностью заполнил, смог достучаться до GitHub, даже смог вытянуть с GitHub файлы, но вот запушить их не смог (недостаточно разрешений аккаунта)). Потом было долгое копание в Гугле, но это не ОС ПК и в Гугле ты ничего не найдешь. В итоге просто удалил GitHub паспорт и соединился с другим репозиторием, провозился. И нашел эту маленькую неувязку(хотя казалось бы если неправильно подключился то и файлы не вытянуть, ан нет). А потом ещё одна ошибка ( not fast-forward), но тут было стандартное решение. Описал я это здесь для того чтобы было понятно, что чаще всего вы не сможете загуглить вопрос по ide на андроиде, но не всё так плохо.
Вернёмся к описанию. Так вот работа с GitHub реализована намного лучше. Это один из плюсов этого приложения из за которого мне оно нравится.
Оно не так удобно как Acode, но , думаю, это из-за того, что здесь больше возможностей и настроек.
Отдельно упомяну, что имеется полноценное управление проектами.
А вот режим тестового вида страницы хоть и реализован удобнее(можно налету отслеживать изменения) все же не обошёлся без бага (при смене ориентации макет нарушается), но при перезагрузке режима все встает на свои места.
В итоге пока работаю на Spck, а Acode использую при параллельном редактировании двух и более файлов.
Ещё упомяну, что есть ещё одно приложение необходимое для верстки.
Нужно найти себе нормальную виртуальную клавиатуру. Я остановился на hacker’s keyboard.
Хотя мне больше удобна клава Гугла для набивки текста, но для работы удобнее иметь аналог физической клавиатуры с кнопками ctr, enter и т.д.. Ещё у нее есть панель быстрого доступа для символов. Однако не работает автозаполнение, но это не проблема если работаешь в ide.
Итого. Для написания кода — hacker keyboard, для теста gboard. С учётом того, что кнопка переключения между клавами работает прекрасно, то можно на этом и остановиться.
И вот теперь я настроил все инструменты и готов работать.
Но не тут то было.
В процессе настройки инструментов, тестирования приложений и остальной работы я понял, что это банально, неудобно (все же за столом, с чашкой кофе это удобнее, чем сидя на диване, с постоянно опущенной головой)
И если ты все ещё думаешь, что с телефоном можно долго просидеть в кресле и работать, то ты ошибаешься, ну, конечно, если у тебя не супер накаченная шея. Ведь через пару часов за планшетом она начинает затекать. А если работать по полной, то лучше рабочего места чем кровать тебе не найти, но, это до 30 лет, а после, если ты не двигаешься долгое время, то даже лёжа спина начинает ныть.
Так что стол и хорошее кресло это необходимость. А если всё и так происходит сидя за столом в кресле, то зачем тогда планшет.
К тому же я понял, почему на андроиде так сложно работать. Чувствуешь себя как-то не уверенно, и если у тебя проблема со средой разработки, то никто тебе не поможет, а самому лезть в это без знаний достаточно опасно.
Вроде все просто, но не почувствовав все на себе я, честно сказать, и не задумывался о таких нюансах.
Так что для полноценной работы все же нужно хорошее рабочее место с ПК.
А для «коротких забегов» можно использовать мой набор инструментов.
Например, если ты едешь на работу час или два в общественном транспорте, то это неплохой вариант. Но кого я обманываю. Работать по дороге на работу тяжко. Да и какая дорога на работу в пандемию. Хотя иногда может выручить.
Как я и говорил выше я изначально не рассматривал варианта переделать планшет под чистый Linux, или качать что-то вне маркета (сторонние приложения) или подключать приложения с рут правами. Все это из-за боязни превратить его в простой кирпич. Так же не было желания пробовать платные приложения, да я скряга, но ещё не известно, что я в итоге получу в платной программе.
Ввиду такого выбора я намеренно ограничил себя отдавая предпочтение безопасности прошивки. Но если кто-то подскажет мне хороший билд, то я не прочь что-то попробовать.
Acode как запустить код
def bubble_sort(list):
sorted_list = list[:] is_sorted = False
while is_sorted == False:
swaps = 0
for i in range(len(list) — 1):
if sorted_list[i] > sorted_list[i + 1]: # swap
temp = sorted_list[i] sorted_list[i] = sorted_list[i + 1] sorted_list[i + 1] = temp
swaps += 1
print(swaps)
if swaps == 0:
is_sorted = True
return sorted_list
print(bubble_sort([2, 1, 3]))
Getting Started with Python in VS Code
In this tutorial, you use Python 3 to create the simplest Python «Hello World» application in Visual Studio Code. By using the Python extension, you make VS Code into a great lightweight Python IDE (which you may find a productive alternative to PyCharm).
This tutorial introduces you to VS Code as a Python environment, primarily how to edit, run, and debug code through the following tasks:
- Write, run, and debug a Python «Hello World» Application
- Learn how to install packages by creating Python virtual environments
- Write a simple Python script to plot figures within VS Code
This tutorial is not intended to teach you Python itself. Once you are familiar with the basics of VS Code, you can then follow any of the programming tutorials on python.org within the context of VS Code for an introduction to the language.
If you have any problems, feel free to file an issue for this tutorial in the VS Code documentation repository.
Prerequisites
To successfully complete this tutorial, you need to first setup your Python development environment. Specifically, this tutorial requires:
- VS Code
- VS Code Python extension
- Python 3
Install Visual Studio Code and the Python Extension
If you have not already done so, install VS Code.
Next, install the Python extension for VS Code from the Visual Studio Marketplace. For additional details on installing extensions, see Extension Marketplace. The Python extension is named Python and it’s published by Microsoft.

Install a Python interpreter
Along with the Python extension, you need to install a Python interpreter. Which interpreter you use is dependent on your specific needs, but some guidance is provided below.
Windows
Install Python from python.org. You can typically use the Download Python button that appears first on the page to download the latest version.
Note: If you don’t have admin access, an additional option for installing Python on Windows is to use the Microsoft Store. The Microsoft Store provides installs of Python 3.7, Python 3.8, Python 3.9, and Python 3.10. Be aware that you might have compatibility issues with some packages using this method.
For additional information about using Python on Windows, see Using Python on Windows at Python.org
macOS
The system install of Python on macOS is not supported. Instead, an installation through Homebrew is recommended. To install Python using Homebrew on macOS use brew install python3 at the Terminal prompt.
Note On macOS, make sure the location of your VS Code installation is included in your PATH environment variable. See these setup instructions for more information.
Linux
The built-in Python 3 installation on Linux works well, but to install other Python packages you must install pip with get-pip.py.
Other options
Data Science: If your primary purpose for using Python is Data Science, then you might consider a download from Anaconda. Anaconda provides not just a Python interpreter, but many useful libraries and tools for data science.
Windows Subsystem for Linux: If you are working on Windows and want a Linux environment for working with Python, the Windows Subsystem for Linux (WSL) is an option for you. If you choose this option, you’ll also want to install the Remote — WSL extension. For more information about using WSL with VS Code, see VS Code Remote Development or try the Working in WSL tutorial, which will walk you through setting up WSL, installing Python, and creating a Hello World application running in WSL.
Verify the Python installation
To verify that you’ve installed Python successfully on your machine, run one of the following commands (depending on your operating system):
Linux/macOS: open a Terminal Window and type the following command:
Windows: open a command prompt and run the following command:
If the installation was successful, the output window should show the version of Python that you installed.
Note You can use the py -0 command in the VS Code integrated terminal to view the versions of python installed on your machine. The default interpreter is identified by an asterisk (*).
Start VS Code in a project (workspace) folder
Using a command prompt or terminal, create an empty folder called «hello», navigate into it, and open VS Code ( code ) in that folder ( . ) by entering the following commands:
Note: If you’re using an Anaconda distribution, be sure to use an Anaconda command prompt.
By starting VS Code in a folder, that folder becomes your «workspace». VS Code stores settings that are specific to that workspace in .vscode/settings.json , which are separate from user settings that are stored globally.
Alternately, you can run VS Code through the operating system UI, then use File > Open Folder to open the project folder.
Select a Python interpreter
Python is an interpreted language, and in order to run Python code and get Python IntelliSense, you must tell VS Code which interpreter to use.
From within VS Code, select a Python 3 interpreter by opening the Command Palette ( ⇧⌘P (Windows, Linux Ctrl+Shift+P ) ), start typing the Python: Select Interpreter command to search, then select the command. You can also use the Select Python Environment option on the Status Bar if available (it may already show a selected interpreter, too):

The command presents a list of available interpreters that VS Code can find automatically, including virtual environments. If you don’t see the desired interpreter, see Configuring Python environments.
Note: When using an Anaconda distribution, the correct interpreter should have the suffix (‘base’:conda) , for example Python 3.7.3 64-bit (‘base’:conda) .
Selecting an interpreter sets which interpreter will be used by the Python extension for that workspace.
Note: If you select an interpreter without a workspace folder open, VS Code sets python.defaultInterpreterPath in User scope instead, which sets the default interpreter for VS Code in general. The user setting makes sure you always have a default interpreter for Python projects. The workspace settings lets you override the user setting.
Create a Python Hello World source code file
From the File Explorer toolbar, select the New File button on the hello folder:

Name the file hello.py , and it automatically opens in the editor:

By using the .py file extension, you tell VS Code to interpret this file as a Python program, so that it evaluates the contents with the Python extension and the selected interpreter.
Note: The File Explorer toolbar also allows you to create folders within your workspace to better organize your code. You can use the New folder button to quickly create a folder.
Now that you have a code file in your Workspace, enter the following source code in hello.py :
When you start typing print , notice how IntelliSense presents auto-completion options.

IntelliSense and auto-completions work for standard Python modules as well as other packages you’ve installed into the environment of the selected Python interpreter. It also provides completions for methods available on object types. For example, because the msg variable contains a string, IntelliSense provides string methods when you type msg. :

Feel free to experiment with IntelliSense some more, but then revert your changes so you have only the msg variable and the print call, and save the file ( ⌘S (Windows, Linux Ctrl+S ) ).
For full details on editing, formatting, and refactoring, see Editing code. The Python extension also has full support for Linting.
Run Hello World
It’s simple to run hello.py with Python. Just click the Run Python File in Terminal play button in the top-right side of the editor.
The button opens a terminal panel in which your Python interpreter is automatically activated, then runs python3 hello.py (macOS/Linux) or python hello.py (Windows):

There are three other ways you can run Python code within VS Code:
Right-click anywhere in the editor window and select Run Python File in Terminal (which saves the file automatically):

Select one or more lines, then press Shift+Enter or right-click and select Run Selection/Line in Python Terminal. This command is convenient for testing just a part of a file.
From the Command Palette ( ⇧⌘P (Windows, Linux Ctrl+Shift+P ) ), select the Python: Start REPL command to open a REPL terminal for the currently selected Python interpreter. In the REPL, you can then enter and run lines of code one at a time.
Configure and run the debugger
Let’s now try debugging our simple Hello World program.
First, set a breakpoint on line 2 of hello.py by placing the cursor on the print call and pressing F9 . Alternately, just click in the editor’s left gutter, next to the line numbers. When you set a breakpoint, a red circle appears in the gutter.

Next, to initialize the debugger, press F5 . Since this is your first time debugging this file, a configuration menu will open from the Command Palette allowing you to select the type of debug configuration you would like for the opened file.

Note: VS Code uses JSON files for all of its various configurations; launch.json is the standard name for a file containing debugging configurations.
These different configurations are fully explained in Debugging configurations; for now, just select Python File, which is the configuration that runs the current file shown in the editor using the currently selected Python interpreter.
You can also start the debugger by clicking on the down-arrow next to the run button on the editor, and selecting Debug Python File in Terminal.
The debugger will stop at the first line of the file breakpoint. The current line is indicated with a yellow arrow in the left margin. If you examine the Local variables window at this point, you will see now defined msg variable appears in the Local pane.

A debug toolbar appears along the top with the following commands from left to right: continue ( F5 ), step over ( F10 ), step into ( F11 ), step out ( ⇧F11 (Windows, Linux Shift+F11 ) ), restart ( ⇧⌘F5 (Windows, Linux Ctrl+Shift+F5 ) ), and stop ( ⇧F5 (Windows, Linux Shift+F5 ) ).

The Status Bar also changes color (orange in many themes) to indicate that you’re in debug mode. The Python Debug Console also appears automatically in the lower right panel to show the commands being run, along with the program output.
To continue running the program, select the continue command on the debug toolbar ( F5 ). The debugger runs the program to the end.
Tip Debugging information can also be seen by hovering over code, such as variables. In the case of msg , hovering over the variable will display the string Hello world in a box above the variable.
You can also work with variables in the Debug Console (If you don’t see it, select Debug Console in the lower right area of VS Code, or select it from the . menu.) Then try entering the following lines, one by one, at the > prompt at the bottom of the console:

Select the blue Continue button on the toolbar again (or press F5) to run the program to completion. «Hello World» appears in the Python Debug Console if you switch back to it, and VS Code exits debugging mode once the program is complete.
If you restart the debugger, the debugger again stops on the first breakpoint.
To stop running a program before it’s complete, use the red square stop button on the debug toolbar ( ⇧F5 (Windows, Linux Shift+F5 ) ), or use the Run > Stop debugging menu command.
For full details, see Debugging configurations, which includes notes on how to use a specific Python interpreter for debugging.
Tip: Use Logpoints instead of print statements: Developers often litter source code with print statements to quickly inspect variables without necessarily stepping through each line of code in a debugger. In VS Code, you can instead use Logpoints. A Logpoint is like a breakpoint except that it logs a message to the console and doesn’t stop the program. For more information, see Logpoints in the main VS Code debugging article.
Install and use packages
Let’s now run an example that’s a little more interesting. In Python, packages are how you obtain any number of useful code libraries, typically from PyPI. For this example, you use the matplotlib and numpy packages to create a graphical plot as is commonly done with data science. (Note that matplotlib cannot show graphs when running in the Windows Subsystem for Linux as it lacks the necessary UI support.)
Return to the Explorer view (the top-most icon on the left side, which shows files), create a new file called standardplot.py , and paste in the following source code:
Tip: If you enter the above code by hand, you may find that auto-completions change the names after the as keywords when you press Enter at the end of a line. To avoid this, type a space, then Enter .
Next, try running the file in the debugger using the «Python: Current file» configuration as described in the last section.
Unless you’re using an Anaconda distribution or have previously installed the matplotlib package, you should see the message, «ModuleNotFoundError: No module named ‘matplotlib’». Such a message indicates that the required package isn’t available in your system.
To install the matplotlib package (which also installs numpy as a dependency), stop the debugger and use the Command Palette to run Terminal: Create New Terminal ( ⌃⇧` (Windows, Linux Ctrl+Shift+` ) ). This command opens a command prompt for your selected interpreter.
A best practice among Python developers is to avoid installing packages into a global interpreter environment. You instead use a project-specific virtual environment that contains a copy of a global interpreter. Once you activate that environment, any packages you then install are isolated from other environments. Such isolation reduces many complications that can arise from conflicting package versions. To create a virtual environment and install the required packages, enter the following commands as appropriate for your operating system:
Note: For additional information about virtual environments, see Environments.
Create and activate the virtual environment
Note: When you create a new virtual environment, you should be prompted by VS Code to set it as the default for your workspace folder. If selected, the environment will automatically be activated when you open a new terminal.

For Windows
If the activate command generates the message «Activate.ps1 is not digitally signed. You cannot run this script on the current system.», then you need to temporarily change the PowerShell execution policy to allow scripts to run (see About Execution Policies in the PowerShell documentation):
For macOS/Linux
Select your new environment by using the Python: Select Interpreter command from the Command Palette.
Install the packages
Rerun the program now (with or without the debugger) and after a few moments a plot window appears with the output:

Once you are finished, type deactivate in the terminal window to deactivate the virtual environment.
For additional examples of creating and activating a virtual environment and installing packages, see the Django tutorial and the Flask tutorial.
Next steps
You can configure VS Code to use any Python environment you have installed, including virtual and conda environments. You can also use a separate environment for debugging. For full details, see Environments.
To learn more about the Python language, follow any of the programming tutorials listed on python.org within the context of VS Code.
To learn to build web apps with the Django and Flask frameworks, see the following tutorials:
Acode Framework
Все файлы ядра имеют префикс «af_«.
Все классы ядра имеют префикс «af«.
Все переменные ядра имеют префикс «a«.
Все методы ядра имеют префикс «f«.
Для работы с фреймворком определены только 2 метода: a() и f().
Метод a() устанавливает переменные для приложения и возвращает эти переменные(массивы, строки и объекты).
Метод f() только устанавливает переменные для приложения.
Примеры работы. [ править ]
1. Структура фреймворка.
Module — приложение, которое может работать автономно( например директория ‘demo’ спроектированная на основе архитектуры MVC).
Extenstion — расширение функциональности и дополнительных возможностей самого фреймворка(например Smarty в system/af_ext/ ).
Структура AF:
Acode как запустить код python

В этой статье я хотел бы рассказать о том, как создать полноценное приложение на Python для Android. Нет, это не очередной мануал для создания скрипта для sl4a, это мануал по созданию полноценного приложения с UI, возможностью собрать apk и выложить на Android Market. Заодно я хотел бы похвалиться своим первым приложением на google.play, это не hello world, а полезное приложение для фотографов, хотя и узко специализированное.
Начну рассказ пожалуй с самого приложения и завершу рассказам о том как оно делалось.
isortViewer
Мне как фотографу приходится тратить много времени на сортировку и отбор фотографий. Не всегда хочется сидеть за рабочим компьютером, когда под рукой есть ноутбук, смартфон или планшет, но копировать туда десятки гигабайт raw или jpeg файлов, а потом синхронизировать с рабочим компьютером — сомнительное удовольствие. Именно поэтому я создал программы isortManager и isortViewer, которые значительно облегчили мне работу по сортировке и отбору фотографий. Теперь заниматься отбором и сортировкой фотографий я могу лежа на пляже диване или скучая в пробке
Копипаст описания и пара скриншотов:
isortViewer — программа для фотографов, которая позволяет легко и быстрой отбирать и сортировать тысячи фотографий (raw или jpg) с фотосессий на ваших android смартфонах и планшетах. При этом, нет необходимости копировать десятки гигабайт jpg или raw файлов на устройство. Просто воспользуйтесь бесплатной программой isortManager для компьютера, которая сохранит все в один небольшой файл проекта:
1. Скачайте и запустите isortManager с официального сайта;
2. Создайте проект и добавьте папки с фотографиями. Поддерживаются форматы: jpg и raw (cr2, nef, orf и т.д.). В итоге у вас получится небольшой файл проекта (примерно 150 мб на несколько тысяч фотографий, будь то jpg или raw формат);
3. Скопируйте на ваше android устройство файл проекта, откройте в isortViewer. Вы можете помечать фотографии «на удаление», а так же, ставить рейтинги от 1 до 5 звезд;
4. После этого, скопируйте файл проекта обратно и примените изменения в isortManager. Кроме удаления выбранных фотографий, вы можете копировать или перемещать отмеченные фотографии. Например, фотографии с «5 звезд» можно скопировать в папку «шедевры», а «1 звезда» переместить в папку «хлам».



Приложение абсолютно бесплатно и доступно на google.play, однако донейты приветствуются.
Исходники доступны на официальном сайте!
Как это делалось
Так как python лучший язык программирования в мире кроме python я ничего не знаю, решено было написать приложение на python.
isortManager
С isortManager для PC проблем не возникло, создание GUI сборки под windows уже давно обкатано и работает он очень просто: с помощью dcraw выдирает jpg превьюшки из raw файлов, ресайзит из с помощью PIL и складывает в один файл с достаточно простой структурой. Был изобретен свой весолипед с контейнером для хранения фотографий и метаданных (полный путь к фотографии, отметка «на удаление» и отметка рейтинга), так как, например, zip или tar формат, не могут изменять один файл в архиве (метаданные), требую перепаковки всех файлов. Файлы просто пишутся один за другим подряд и в блоке метаданных (обычный repr питоновского словаря) в конце сохраняется смещения начала файлов, плюс в конце файла пишется размер блока метаданных. GUI написано на Tkinter (люблю я его за быстроту написания и за малый размер итоговой сборки), вот собственно скриншот:

И да, все это работает и на linux, и даже быстрее чем на windows )
isortViewer для android
Всего я нашел два способа заставить python приложение работать как полноценное приложение на android, это pygame for android и проект kivy.
Pygame — более низкоуровневый, все UI пришлось бы рисовать вручную, что отняло бы много времени, поэтому был выбран фреймворк kivy. Итак:
Это замечательный фрейморк для написания приложение для windows, linux, MacOS, android и iOS. Поддерживается мультитач, UI рисутется через OpenGL, значит должно работать аппаратное ускорение. Увидеть работу виджетов можно установив демонстрационное приложение Kivy Showcase. Есть возможность использования некоторых платформо специфичных функций, например, вибро или акселерометр, с помощью модуля android.
Для разработки я бы рекомендовал использовать linux, тем более, apk собираются именно в этой OS.
Hello World выглядит так:
Причем этот код будет работать на всех заявленных платформах. Пропадает необходимость в тестировании приложения в эмуляторе. Достаточно запустить скрипт на исполнение в своей любимой IDE и увидеть результат на экране компьютера, без задержек на компиляцию, запуск эмулятора и пр. Если вы все же хотите увидеть как это будет выглядеть непосредственно на устройстве, просто установите Kivy Launcher, скопируйте файлы проекта на карту памяти и запустите. Дебажить при этом можно при помощи adb logcat.
Если вы используете библиотеку android, которой нет на PC, но хочется запускать приложение не только на android, воспользуйте такой конструкцией:
Сборка apk достаточно проста и описана на этой странице. После сборки релиза, достаточно подписать свое приложение (я использовал этот мануал) и выложить в google play.
- Быстрая разработка под различные платформы, практически без доработки кода.
- Доступен широкий выбор виджетов
- Высокая скорость работы. Весь ресурсоемкий вынесен в С модули. Сам интерпретатор python на android работает нативно.
- Фремворк включает в себя множество инструментов, например анимация, кеширование и пр.
- upd: Доступ к камере, буферу обмена, микрофону. Написать свой видеоплеер можно буквально за 20 строк.
- Большой размер apk файла. Проект с 300 кб ресурсов (скрипты, графика) собирается в 7 мб apk. Хотя, думаю, есть возможность это как то оптимизировать.
- Невозможность (пока), восстанавливать работу после сворачивания — приложение закрывается
В следующей своей статье, я расскажу более подробно о процессе написания приложения «с нуля», расжевывая каждую строчку кода.
Хотелось бы сразу пресечь холивары на тему «для android только java, python не нужен». Я считаю, не важно, какие технологии «под капотом», главное чтоб приложение было качественным.
Сфера применения kivy может быть огромной. Сейчас на моем счету несколько приложений, написанных под заказ, где python с фремворком kivy показал себя с хорошей стороны. Например, ровно за один час, было написано приложение, для сети сервисных центров. Приложение работает в режиме киоска и установлено на дешевые китайские планшеты, которые висят в холле. Клиент набирает номер заказа, далее по WiFi планшет соединяется с сервером и сообщает статус заказа.
Есть ли способ запустить Python на Android? [закрытый]
мы работаем над на S60 версия и эта платформа имеет хороший API Python.
тем не менее, нет ничего официального о Python на Android, но с языка Jython существует ли способ позволить змее и роботу работать вместе?
25 ответов
один из способов-это использовать Kivy:
библиотека Python с открытым исходным кодом для быстрой разработки приложений которые используют инновационные пользовательские интерфейсы, такие как мультитач-приложения.
Kivy работает на Linux, Windows, OS X, Android и iOS. Вы можете запустить один и тот же код [python] на всех поддерживаемых платформах.
появилась новая Среда Сценариев Android (ASE/SL4A) проект. Он выглядит потрясающе, и он имеет некоторую интеграцию с родными компонентами Android.
Примечание: больше не в разделе «активное развитие», но некоторые вилки могут быть.
пример через Мэтта Каттса через SL4A — » вот сканер штрих-кода, написанный в шести строках кода Python:
там же системы SL4A написано большими сотрудниками Google.
«в подмножество Pygame для Android является портом подмножества функций Pygame для платформы Android. Цель проекта-разрешить создание Android-специфических игр, а также облегчить перенос игр с ПК-подобных платформ на Android.»
примеры включают полную игру, упакованную в APK, что довольно интересно.
Я опубликовал инструкции и патч для кросс-компиляции Python 2.7.2 для Android, вы можете получить его в моем блоге здесь:http://mdqinc.com/blog/2011/09/cross-compiling-python-for-android/
EDIT: у меня есть открытый исходный код Ignifuga, мой 2D игровой движок, он основан на Python/SDL, и он компилируется для Android. Даже если вы не используете его для игр, вы можете получить полезные идеи из кода и утилиты builder (названной Schafer, в честь Тима. вы знаете который.)
скриптовый слой для Android
системы SL4A делает то, что вы хотите. Вы можете легко установить его прямо на свое устройство со своего сайта, и вам не нужен root.
он поддерживает ряд языков. Python является наиболее зрелым. По умолчанию, он использует Python 2.6, но есть порт 3.2 вы можете использовать вместо этого. Я использовал этот порт для всех видов вещей на Galaxy S2 и он работал нормально.
SL4A обеспечивает порт их android библиотека для каждого поддерживаемого языка. Библиотека предоставляет интерфейс для базового API Android через один Android «объект».
каждый язык имеет в значительной степени тот же API. Вы даже можете использовать JavaScript API внутри webviews.
Пользовательские Интерфейсы
для пользовательских интерфейсов, у вас есть три варианта:
- вы можете легко использовать общие, родные диалоги и меню через ПРИКЛАДНОЙ ПРОГРАММНЫЙ ИНТЕРФЕЙС. Этот хорошо подходит для диалогов подтверждения и других основных пользовательских входов.
- вы также можете открыть webview изнутри скрипта Python, а затем использовать HTML5 для пользовательского интерфейса. Когда вы используете webviews из Python, вы можете передать сообщения взад и вперед, между webview и процессом Python, который породил его. Пользовательский интерфейс не будет родным, но это все еще хороший вариант иметь.
- здесь какой-то поддержка собственных пользовательских интерфейсов Android, но я не уверен, насколько хорошо он работает, просто я никогда им не пользовался.
вы можете смешивать параметры, поэтому вы можете иметь webview для основного интерфейса и по-прежнему использовать собственные диалоги.
QPython
существует сторонний проект с именем QPython. Он строится на SL4A и бросает некоторые другие полезные вещи.
QPython дает вам более приятный пользовательский интерфейс для управления установкой и включает в себя немного, сенсорный редактор кода, оболочку Python и оболочку PIP для управление пакетами. Они также имеют порт Python 3. Обе версии доступны в Play Store бесплатно. QPython также связывает библиотеки из кучи Python в проектах Android, включая Kivy, поэтому это не просто SL4A.
обратите внимание, что QPython по-прежнему развивает свою вилку SL4A (хотя, честно говоря, не так много). Сам основной проект SL4A в значительной степени мертв.
Полезные Ссылки
- проект SL4A (теперь на GitHub): https://github.com/damonkohler/sl4a
- SL4A Python 3 порт:https://code.google.com/p/python-for-android/wiki/Python3
- Проект QPython:http://qpython.com
Как Python любовник и программист Android, мне грустно говорить, что это не очень хороший способ пойти. Есть две проблемы.
одна проблема заключается в том, что существует гораздо больше, чем просто язык программирования для Android инструменты разработки. Многие графики Android включают XML-файлы для настройки дисплея, похожие на HTML. Встроенные объекты Java действительно интегрированы с этим XML-макета, и это намного проще, чем писать собственный код, чтобы перейти от логики растровый.
другая проблема заключается в том, что G1 (и, вероятно, другие устройства Android в ближайшем будущем) действительно не так быстро. Процессоры 200 МГц, а оперативная память очень ограничена. Даже в Java вам нужно сделать приличное количество перезаписи, чтобы избежать создания дополнительных объектов, если вы хотите сделать свое приложение идеально гладким. Python будет слишком медленным какое-то время еще на мобильных устройствах.
не в данный момент, и Вы были бы удачливы получить языка Jython на работу. Если вы планируете начать разработку сейчас, вам будет лучше просто придерживаться Java на данный момент.
используя SL4A (который уже упоминался сам по себе в других ответах), вы можете run полноценный web2py экземпляр (других веб-фреймворки python также вероятные кандидаты). SL4A не позволяет вам делать собственные компоненты пользовательского интерфейса (кнопки, полосы прокрутки и тому подобное), но он поддерживает WebViews. WebView-это в основном не что иное, как полосатый веб-браузер, указывающий на фиксированный адрес. Я считаю, что родное приложение Gmail использует WebView вместо обычного маршрута виджета.
этот маршрут будет иметь некоторые интересные особенности:
- в случае большинства веб-фреймворков python вы можете разрабатывать и тестировать без использования устройства android или эмулятора android.
- любой код Python, который вы в конечном итоге пишете для телефона, также может быть помещен на общедоступный веб-сервер с очень небольшой (если таковой имеется) модификацией.
- вы могли бы воспользоваться всеми преимуществами сумасшедший веб-материал: query, HTML5,CSS3 и т. д.
Я хочу опубликовать это как расширение what @JohnMudd уже ответил (но, пожалуйста, потерпите со мной, так как английский не мой родной язык)
С тех пор прошло много лет, и киви эволюционировал до v1.9-dev. Самой большой точкой продажи Kivy, на мой взгляд, является ее кросс-платформенная совместимость. Вы можете кодировать и тестировать в локальной среде (Windows / * nix и т. д.), вы можете также построить, отладить и упаковать ваше приложение к запуск на устройствах Android/iOS/Mac/Windows.
С Kivy это KV язык, вы можете легко кодировать и создавать интерфейс GUI (это так же, как Java XML, но вместо TextView и т. д., КВ имеет свой ui.widgets для аналогичного перевода), который, на мой взгляд, довольно легко принять.
в настоящее время Buildozer и python-для-android являются наиболее рекомендуемыми инструментами для создания / упаковки приложений. Я пробовал их обоих и могу твердо сказать,что они делают строительство Android-приложений с Python ветер. Пользователи, которые чувствуют себя комфортно в своей консоли / терминале / командной строке, не должны иметь проблем с их использованием, и их руководства также хорошо документированы.
кроме того, iOS-еще одна большая точка продажи Kivy, при условии, что вы можете использовать ту же базу кода с небольшими изменениями, необходимыми для тестирования на вашем устройстве iOS, через kivy-прошивкой Homebrew tools, хотя Xcode требуется для сборки перед запуском на своих устройствах (AFAIK симулятор iOS в Xcode в настоящее время не работает для сборки x86-архитектуры). Есть также некоторые проблемы с зависимостями, которые необходимо вручную скомпилировать и возиться с Xcode, чтобы иметь успешную сборку, но их не было бы слишком сложно решить, и люди в Kivy Google Group очень полезная.
со всем сказанным, пользователи с хорошими знаниями Python не должны иметь никаких проблем, подбирая основы в неделях (если не дней) чтобы создать несколько простых приложений.
также стоит упомянуть, что вы можете связывать (создавать рецепты) свои модули Python со сборкой, чтобы пользователи могли действительно использовать многие существующие библиотеки Python, такие как запросы & PIL etc. через Kivy это.
иногда ваше приложение требует функциональности, которая выходит за рамки рамки того, что Kivy может доставить. В этих случаях необходимо прибегайте к внешним библиотекам программного обеспечения. Учитывая богатство Экосистема Python, уже есть много программного обеспечения библиотеки, которые вы можете просто импортировать и использовать сразу.
последнее, но не менее важное, если вы собираетесь использовать Kivy для более серьезных/коммерческих проектов, вы можете найти существующие модули неудовлетворительными. Однако есть некоторые выполнимые решения, с «незавершенной работой»pyjnius для Android, и pyobjus. Пользователи теперь можно получить доступ к классам Java/Objective-C через эти модули для управления некоторыми собственными API.
мой опыт в Kivy заключается в том, что он найдет свою лучшую подгонку с опытными программистами Python и некоторыми серьезными программистами, которые хотят быстрой разработки или простого обслуживания базы кода. Он хорошо работает на нескольких платформах, хотя и не совсем с уроженца чувство.
Я надеюсь, что некоторые программисты приложений Python найдут эту информацию полезной и начнут принимать посмотрите на Kivy. Он может стать только лучше (с большей поддержкой и по мере переноса библиотек/модулей), если есть большой интерес со стороны сообщества.
Name already in use
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Autocode standard library Python bindings
Basic Python bindings for Autocode standard library service accession. Python 2.x and 3.x supported.
Used to interface with services built using Autocode and the Autocode CLI.
The lib package is available on PyPI: lib and operates as zero-dependency interface to run StdLib functions. This means that you can utilize any service on StdLib without installing any additional dependencies, and when you’ve deployed services to StdLib, you have a pre-built Python SDK. For example.
To discover StdLib services, visit https://stdlib.com/search. To build a service, get started with the StdLib CLI tools.
To install in an existing Python project;
Sending File Data
In order to send file parameters, in Python 2.7 or 3.6, simply use;
Where parameter is the parameter name expecting a file type (type «buffer» as listed on StdLib).
Устанавливаем и программируем на Питоне на Андроиде
Как установить и кодировать Python на Android? — Очень просто
Узнайте, как установить IDE Pydroid 3 на Android, а также полезные инструменты и библиотеки для практики программирования на Python!
«Мобильное» кодирование на Python возможно благодаря использованию интегрированной среды разработки Pydroid 3 (IDE). Pydroid — это минималистичный интерпретатор Python 3, который позволяет вам выполнять небольшие проекты в буквальном смысле на весу, разрабатывая и отлаживая программный код на вашем устройстве Android — будь то планшет или смартфон.
Если вы также хотите изучать программирование на Python в любом месте где нет ПК или ноутбука, то есть смысл воспользоваться Python для ПК, адаптированным для запуска в операционной системе Android. «Питон для Андроида» имеет собственное имя — Pydroid 3 — и это то, что вам нужно попробовать.
Сразу отметим, что отладчиков Python, разработанных для Android — несколько. Отличия — в функционале, цене, скорости и стабильности. Далее погрузимся в тему чуть глубже.
Независимо от того, являетесь ли вы новичком в программировании на Python или являетесь экспертом, давайте посмотрим, как вы можете использовать Pydroid 3 в полной мере на своем устройстве Android.
Установите Pydroid 3 И Его Плагины
IDE Pydroid 3 доступна в Google Play Store. Однако, чтобы сделать приложение более полезным и простым в работе, вам необходимо загрузить плагин репозитория Pydroid из Play Store. Хотя установка этого плагина может быть не обязательной, он значительно упрощает автоматическую установку пакетов через pip. Напомним, оригинальный интерпретатор Python также имеет возможность самообновления путем подключения к хранилищу — репозиторию.
По умолчанию Pydroid 3 не имеет разрешения на доступ к памяти вашего устройства. Это делает создание папок проекта трудным или невозможным без некоторых технических манипуляций. Чтобы решить эту проблему, загрузите плагин разрешений Pydroid из Play Store, который разрешит Pydroid создавать папки и файлы на вашем устройстве.
- Скачать: Pydroid 3 — IDE для Python 3 (доступны бесплатные покупки в приложении)
- Скачать: Плагин репозитория Pydroid (бесплатно)
- Скачать: Плагин разрешений Pydroid (бесплатно)
Пакеты Установки Pip
После того, как вы все настроили, вы можете начать использовать команду pip для установки пакетов для своих проектов, ровно также, как вы это делаете на ПК. Pydroid 3 поставляется с интерфейсом, который позволяет устанавливать пакеты без написания команд в терминале.
Есть несколько способов установить пакеты pip на Pydroid 3. Чтобы получить доступ к этой функции, нажмите значок меню (который выглядит как три линии) в верхнем левом углу приложения. Далее перейдите к строке Pip. В верхней части меню Pip выберите ПОИСК БИБЛИОТЕК(Search Libraries), чтобы получить дополнительные параметры модуля, который вы хотите установить. Или вы можете нажать на опцию БЫСТРАЯ УСТАНОВКА(Quick Install), чтобы установить пакеты, предлагаемые к установке по умолчанию.

Однако лучший вариант — нажать на УСТАНОВИТЬ(Install) и установить флажок «Использовать готовый репозиторий библиотек»(Use prebuild libraries repository). Затем введите предпочтительное имя пакета в строке поиска и нажмите кнопку УСТАНОВИТЬ , чтобы получить желанный пакет.
Чтобы проверить, успешно ли был установлен пакет, коснитесь пункта меню БИБЛИОТЕКИ(Libraries) . Это меню дает вам доступ к списку всех установленных библиотек:

Используйте Встроенный Интерфейс Командной Строки Pydroid 3
Pydroid 3 также предлагает и классический минимальный интерфейс командной строки (CLI) Linux. Чтобы получить к нему доступ, нажмите значок меню в верхнем левом углу приложения и выберите Терминал (Terminal):

Хотя запуск команды pip install packages через встроенный терминал занимает некоторое время для загрузки, она по-прежнему позволяет легко перемещаться между папками и создавать новые везде, где на вашем устройстве разрешена запись. Отметим что медленная загрузка пакетов установки pip через терминал является незначительной проблемой для Pydroid IDE.
Если вы хотите использовать предоставленную командную строку для каких-либо других целей, то имейте ввиду, что ОС Android построена на Linux, поэтому вам необходимо иметь общее представление о том, как использовать командную строку Linux.
Используйте оболочку Python
Пустая страница, которая появляется при открытии Pydroid 3, является его встроенной оболочкой Python. Как и оболочка Python на вашем ПК, она по умолчанию видит любую написанную на ней команду как код Python.
Чтобы использовать оболочку, введите любую команду Python и нажмите большую кнопку запуска в нижнем левом углу редактора. Это откроет интерпретатор Python, который отобразит работу вашего кода.
Однако вы также можете получить доступ к оболочке Python и из командной строки. Для этого перейдите в Терминал , щелкнув значок с тремя линиями в верхнем левом углу приложения. Затем введите python и коснитесь стрелки ввода на виртуальной клавиатуре, чтобы открыть интерпретатор Python в командной строке.
Закончив работу, введите exit (), чтобы покинуть оболочку Python командной строки.

Сохраняйте Папки И Файлы На Вашем Устройстве
Как и любой другой редактор кода, Pydroid 3 имеет интерфейс, который позволяет сохранять файл в любой названной папке на вашем устройстве. Если вы хотите создать папку проекта, вы также можете сохранить новые папки с нужными параметрами сохранения файлов.
Чтобы использовать начать работу с папками, нажмите значок папки в правом верхнем углу оболочки редактирования. Нажмите « Сохранить» и выберите « InternalStorage» . Затем нажмите на предпочтительную папку назначения и нажмите ВЫБРАТЬ ПАПКУ в верхней части экрана. В следующем меню введите желаемое имя файла и нажмите СОХРАНИТЬ .

Однако, если вы хотите создать новую папку проекта, повторите описанный выше процесс, но коснитесь параметра НОВАЯ ПАПКА вместо ВЫБРАТЬ ПАПКУ . Дайте вашей новой папке желаемое имя и нажмите СОЗДАТЬ, чтобы сохранить папку. Затем нажмите на пункт ВЫБРАТЬ ПАПКУ . Назовите новый файл и коснитесь СОХРАНИТЬ, чтобы сохранить новый файл в только что созданной папке.
Обратите внимание, что вновь созданному файлу не требуется расширение файла, если это файл Python. Но если вам нужно использовать другой языковой файл для обслуживания вашего проекта, убедитесь, что вы использовали расширение файла, которое применяется к этому языку, при сохранении такого файла. Например, файл CSS следует сохранить как Name.css , заменив Name предпочтительным именем файла.

Чтобы обновить изменения, внесенные в существующий файл, коснитесь значка папки в правом верхнем углу редактора и выберите « Сохранить» .
Чтобы создать новый файл полностью, коснитесь значка папки. Выберите « Создать» и следуйте инструкциям, выделенным ранее, чтобы сохранить файл в папке. Если вы хотите, чтобы ваш новый файл находился в том же каталоге, что и существующий, убедитесь, что вы выбрали ту же папку, которая содержит существующий.
Публикация исходного кода на Pastebin
Если пожелаете, Вы можете поделиться своими знаниями и прогрессом в изучении с другими пользователями на платформе Pastebin. Для этого коснитесь меню из трех линий в верхнем левом углу приложения. Затем выберите Pastebin и нажмите Да . В следующем всплывающем меню нажмите КОПИРОВАТЬ URL-адрес, чтобы скопировать ссылку на исходный код.

Откройте любой браузер на своем устройстве Android и вставьте скопированную ссылку в строку поиска, чтобы увидеть исходный код на Pastebin. Вы также можете поделиться этой ссылкой с людьми, которым вы хотите предоставить доступ к своему коду.
Настройка IDE
Вы также можете настроить среду разработки, если хотите. Чтобы изменить внешний вид редактора, коснитесь значка настройки в верхнем левом углу экрана и перейдите в « Настройки»> «Внешний вид», чтобы переключиться на предпочитаемую тему, или выберите другие доступные параметры внешнего вида.

Чтобы получить дополнительные возможности настройки, коснитесь параметра « Редактор» и выберите свои предпочтения. Вы также можете коснуться других опций в меню настроек, чтобы увидеть доступные вам опции.
Когда вы щелкаете по значку меню, параметр «Настройки терминала» также предлагает некоторые конфигурации терминала.
Pydroid 3 — Виртуальная Среда Python Для Android
При установке Pydroid 3 IDLE на ваше устройство Android автоматически загружается и устанавливается Python 3. Однако установленный Pydroid 3 IDLE для Python функционирует как виртуальная среда на Android и попытка запустить оболочку Python вне командной строки Pydroid IDLE выдает ошибку.
Если вы хотите попробовать работать в этом режиме, вам необходимо установить специальное стороннее приложение Android CMD (предпочтительно Termux из Google Play Store).
После установки Termux откройте его, убедившись, что вы также установили Pydroid 3. Затем введите python в Termux CMD. Он выдает ошибку каталога файлов, указывающую, что Python не существует в глобальном пространстве Android до его установки с помощью команды pkg install python через Termux.
Однако запуск python на встроенном терминале Pydroid 3 успешно входит в оболочку Python.
Можете Ли Вы Использовать Pydroid Для Любого Проекта?
Хотя написание и запуск кода Питона на Android может быть интересным, использование Pydroid для управления большим проектом не рекомендуется. Однако это еще один способ заняться мелкими проектами, особенно когда они не предназначены для долгосрочных реальных целей.
Помимо управления небольшими проектами, Pydroid 3 также является отличным инструментом, с которым можно поиграть, чтобы улучшить свои навыки программирования на Python, особенно если у вас нет ПК для запуска программ Python.