Мобильные IDE для платформы Android Печать
Автор: A.K.Aphoshar   
22.11.2012 13:48

В последнее время некоторые программисты и даже целые компании уделяют достаточно внимания созданию
интегрированных программных сред (IDE) для мобильных устройств. С помощью этих мобильных IDE,которые
устанавливаются и функционируют непосредственно на смартфоне,возможно в автономном режиме т.е. независимо
от настольного компьютера, проводить полный цикл разработки программных продуктов от написания кода до
отладки и запуска их на самом мобильном устройстве.

В качестве примера можно упомянуть проект Python S60 ,
созданный компанией Nokia в декабре 2004 года. Хотя этот продукт не вполне соответствовал требованиям
полноценной IDE (не было даже встроенного редактора текстов), наличие функционального API (программного интерфейса) ,
а также встроенных стандартных и дополнительных модулей и библиотек (полная поддержка 3D-графики OpenGL) превращали
его в мощный инструмент для создания мобильных приложений. Разработке математических программ с помощью Python S60
посвящена наша книга [1],[2],а также авторские сайты [3],[4]. В настоящее время операционная система Symbian S60
практически полностью замещена другими стремительно развивающимися мобильными платформами , имеются в виду прежде всего
операционные системы Android и iOS(iPhone&iPad). В этой статье речь пойдет об интегрированных программных средах для
Android , об IDE  под iOS поговорим в следующих работах. В основном будем говорить о трех IDE: SL4A,C4droid и конечно о
самом интересном продукте AIDE. Начнем с SL4A. Установочный apk-пакет [5] загружается с сайта разработчиков [6].
Сам "движок" выполнен в виде контейнера в который при желании пользователя можно вложить интерпретаторы наиболее востребованных
сейчас скриптовых языков, при этом в него уже встроен достаточно функциональный API  и удобный текстовый редактор.
Отсутствие графических библиотек позиционирует этот продукт прежде всего как инструмент для создания консольных приложений.
Как уже отмечалось ранее, разрабатывать скрипты возможно на различных интерпретируемых языках, среди которых особого внимания
заслуживают Python 2.6.2,PHP 5.3.3,JavaScript ,Perl и другие. В качестве нетривиального примера рассмотрим вопрос о статистическом
распределении цифр в десятичном разложении числа пи. Скрипт написан на Python ,ядро его взято из [7] с соответствующими
доработками под нужды задачи. После его выполнения в консоли получаем n цифр числа пи ,относительные и абсолютные частоты
их появления в данном приближении , а также значение статистики Пирсона при основной гипотезе о равномерном распределении.

class Pi:
def __init__(self, numdigits):
self.n=numdigits
def output(self, x):
self.res.append(x)
def run(self):
self.res=[]
len=10*self.n/3
a=[2 for i in range(len)]
nines=0
predigit=0
for j in range(1,self.n+1):
q=0
for i in range(len,0,-1):
x=10*a[i-1]+q*i
a[i-1]=x % (2*i-1)
q=x/(2*i-1)
a[0],q=q%10,q/10
if q==9:
nines=nines+1
elif q==10:
self.output(predigit+1)
for k in range(nines):
self.output(0)
predigit,nines=0,0
else:
self.output(predigit)
predigit=q
if nines != 0:
for k in range(nines):
self.output(9)
nines=0
self.output(predigit)


def enter():
n=input('n=')
ans=Pi(n);ans.run();del ans.res[0]
lst,nf=ans.res,float(n)
wl=map(lst.count,range(10))
m=float(max(wl))
print lst
print ['p(%i)=%5.3f'%(i,wl[i]/nf) for i in range(10)]
print wl
fun=lambda x,y:x+(y-.1*n)**2/(.1*n)  
print 'q=',reduce(fun,wl,0)
enter()


Теперь несколько слов о замечательной ,если не сказать больше, IDE C4droid. Установочный пакет загружаем с Google Play
маркета [8]. C4droid оснащен стандартными библиотеками TCC, uClibc и имеет полную поддержку языка C. Для поддержки C++
разработчик [9] подготовил специальный плагин GCC ,загрузка которого возможна из того же источника. Компиляторы  C/C++
умеют работать с  Makefile (сборка модулей). Установка SDL плагина позволяет создавать приложения с GUI (графический
интерфейс). Есть возможность экспорта бинарников или apk файлов. В качестве примера рассмотрим маленькую консольную
программу F.Bellard ,взятую с его сайта [10],которая вычисляет наибольшее на сегодняшний день простое число (это число
содержит примерно 13 млрд. цифр) .C4droid + TCC компилятор + uClibc+1.2 GHz Core2 CPU справляются с этой задачей за час
с четвертью и это превосходный результат для такой трудоемкой задачи ,решенной карманным устройством.


int m=167772161,N=1,t[1<<25]={2},a,*p,i,e=34893349,s,c,U=1;
g(d,h){for(i=s;i<1<<24;i*=2)d=d*1LL*d%m;
for(p=t;p<t+N;p+=s)
for(i=s,c=1;i;i--)
a=p[s]*(h?c:1LL)%m,p[s]
=(m+*p-a)*(h?1LL:c)%m,a+=*p,*p++=a%m,c=c*1LL*d%m;}
main(){while(e/=2){
N*=2;U=U*1LL*(m+1)/2%m;
for(s=N;s/=2;)g(17,0);
for(p=t;p<t+N;p++)
*p=*p*1LL**p%m*U%m;
for(s=1;s<N;s*=2)g(29606852,1);
for(a=0,p=t;p<t+N;)a+=*p<<(e&1),*p++=a%10,a/=10;}
while(!*--p);
for(t[0]--;p>=t;)putchar(48+*p--);}


В заключении о самой интересной и полноценной мобильной IDE, которая по сути своей является "карманным" аналогом настольной
профессиональной среды разработчиков под Android Eclipse. Речь пойдет об IDE AIDE. Установочный пакет получем с Google Play
маркета [11]. Свободно распространяется лишь демо версия ,которая для создания полноценных проектов не применима и служит
лишь для презентации продукта. Полная версия стоит на данный момент примерно 10$ ,такая цена вполне приемлема для программы
такого класса. К сожалению на сайте разработчика [12] нет сколь нибудь приемлемой документации для пользователя ,кроме
некоторых скриншотов и пояснительного непродолжительного видео материала. Но поскольку AIDE есть всего лишь мини копия
профессиональной Eclipse ,то всякий пользователь знакомый с Eclipse для Android почувствует себя сведующим и в AIDE. Следует
еще раз упомянуть , что весь цикл разработки от написания Java кода ,xml файлов ,компиляции ,отладки и т.д. проводится  весьма
комфортно на самом мобильном устройстве без какого либо участия настольного компьютера ,т.е. реализована автономная полноценная
среда разработки мобильных приложений ,вмещающих в себя всю мощь платформы Android. По понятным причинам (AIDE проект содержит большое количество файлов ) в данном обзоре ограничимся лишь ссылкой на авторские разработки математических программ с помощью AIDE [4].

 

Список источников.

[1]Соловьев И.А.,Червяков А.В.,Репин А.Ю. Вычислительная математика на смартфонах, коммуникаторах и ноутбуках
с использованием программных сред Python. Издательство Лань,2011 г.

[2]http://fm.cdml.ru
[3]http://mobimath.cdml.ru/
[4]http://code.google.com/p/android-scripting/downloads/detail?name=sl4a_r6.apk
[5]http://code.google.com/p/android-scripting/
[6]http://www.schwandtner.info/PyS60/
[7]https://play.google.com/store/apps/details?id=com.n0n3m4.droidc&hl=ru
[8] Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript
[9]http://bellard.org/
[10]https://play.google.com/store/apps/details?id=com.aide.ui&hl=ru
[11]https://plus.google.com/101304250883271700981/posts#101304250883271700981/posts


( 0 Votes )
Обновлено 18.08.2014 04:16