Пользователь
0,0
рейтинг
19 июня 2011 в 18:00

Разработка → Проверка кармы пользователя сайта habrahabr.ru с помощью Python на Android

Я очень люблю язык программирования Python и так же люблю Android OS. Для меня было приятным открытием, что для этой ОС существует полноценный интерпретатор Python, но я постоянно откладывал знакомство с ним. В этой статье я хочу рассказать про основные принципы программирования на этом языке под эту ОС.

SL4A


Подготовка к работе

Для начала нужно скачать SL4A и скачать сам Python. После установки Python запускаем его и нажимаем кнопку install в верхней части экрана. После этого скачаются все стандартные библиотеки и расширения для работы на Android. Для удобства внесения мелких изменений можно скачать редактор кода, о котором я уже когда-то писал.

Исходный код

Исходный код довольно читаемый и понятный:
# -*- coding: utf-8 -*-

import android
import urllib2
from xml.etree import ElementTree

droid = android.Android()

droid.vibrate() # привлекаем вниманием пользователя короткой вибрацией
user = droid.dialogGetInput('Имя пользователя', 'на habrahabr.ru').result # запрашиваем у пользователя логин

droid.dialogCreateSpinnerProgress("Загрузка", "пожалуйста подождите")# создаем и показываем окно для ожидания загрузки данных
droid.dialogShow() 

try:
    feed = urllib2.urlopen('http://habrahabr.ru/api/profile/' + user) # грузим XML
    XML = ElementTree.XML(feed.read()) # парсим полученный XML
except:
    droid.dialogCreateAlert('Произошла ошибка', "проверьте соединение с интернетом") # показываем окно с текстом ошибки
    droid.dialogSetPositiveButtonText('Закрыть')
    droid.dialogShow() 
    exit()

droid.dialogDismiss() # прячем окно загрузки
if XML[0].text == '404': # проверяем наличие ошибки в ответе от сервера
        droid.dialogCreateAlert('Произошла ошибка', "введите существующее имя пользователя") # показываем окно с текстом ошибки
        droid.dialogSetPositiveButtonText('Закрыть')
        droid.dialogShow()
        exit()

droid.dialogCreateAlert('Ваша карма', XML[1].text) # показываем окно с результатом работы
droid.dialogSetPositiveButtonText('Закрыть')
droid.dialogShow()


Разбираем исходный код

Библиотека android содержит в себе все функции для работы с системой, такие как интерфейс Android OS, различные «телефонные функции», такие как вибрация, звонки, геолокация и т.д.
Создание диалоговых окон тоже очень простой процесс, в результате которого получилось создать 3 окна:
image image image
А так же пару окон, сообщающих об ошибках.

Вывод

Сейчас Python для Android OS вполне юзабелен и подходит для решения небольших задач. Для любителей языка Python, которым лень выучить Java для работы с этой мобильной ОС это лучший вариант. Если эта статья понравится хабрапользователям, то я готов продолжать писать и о других возможностях Python на SL4A.
inlanger @inlanger
карма
88,6
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (48)

  • +18
    >я готов продолжать писать и о других возможностях Python на SL4A.
    Пиши, буду рад почитать
    • +3
      Я заметил некую закономерность: очень часто авторы статей на хабре заканчивают статью именно предложением продолжить серию, но только если сообществу это будет интересно. В первых комментариях обязательно кто-нибудь напишет: «обязательно пиши ещё». Что самое интересное — все авторы куда-то пропадают, редко кто продолжает писать :) Надеюсь хоть эта будет исключением.
  • +2
    Приложения для того, чтобы проверять карму даже в отдалении от полноценного ПК.
  • +9
    >ваша карма
    Не факт, что ваша. Ведь парсится карма любого пользователя, так? Логичней было бы так: Карма %username%:.
  • +7
    I ♥ Android!
    • +8
      I ♥ Python!
      • +5
        I ♥ Habr!
        • +12
          I ♥ mama!
          • –18
            I ♥ Apple
            • +5
              I ♥ life!
              • 0
                I ♥ love!
                • +5
                  ♥ (♥) = ♥
  • –1
    Мобильный кармадрочер. Ок.
    • –12
      Не, а реально, зачем вообще юзеру, читающему Хабр с мобильного устройства, постоянно знать свою карму? Я этого не понимаю.
      • +21
        Польза этой статьи в том, что-бы показать возможности языка на платформе Android, в понятной для обитателей сайта форме. А не для того что-бы «постоянно знать свою карму».
  • –25
    > Проверка кармы сайта ...

    Начать, наверное, стоило с того, что вообще такое карма сайта…
    • –23
      Молча подменил заголовок статьи, как будто так всегда и было. Молодец, чо.
      • +22
        Вообще-то учел Ваши пожелания
  • –4
    Хорошо, что статья о программировании под Андройд, а не о том, как, не читая Харба и не комментируя, знать только чью-то карму.
  • 0
    А кроме питона, не чем еще можно скрипты писать?
    • 0
      Вроде поддерживаются все популярные скриптовые языки — например Perl, PHP, Lua и др.
  • –1
    Неприятный минус в том, что пользователю надо ставить питон, а это ~10 метров. Можно конечно урезать до необходимого минимума ~5-6 мб, но все равно не то…
    Хотя sl4a хорош.
  • +6
    Некоторые языки настолько хороши, что их пытаются использовать везде где возможно.
    • +1
      и это не может не радовать )
    • +3
      некоторые программисты на столько плохи, что используют единственный язык всюду где это не нужно.
      • +1
        Некоторые программисты настолько умны, что ради маленького проекта не начинают изучать новый язык.
    • 0
      А я отбросил сомнения, которые вселили в меня некоторые товарищи и начал учить Python. Теперь я точно могу быть уверен, что код запустится на любой более-менее популярной платформе.
  • 0
    Спасибо, буду следить за статьями.
  • +5
    На python для андроид можно ведь писать не только скрипты?
    Насколько я понимаю, можно написать приложение на python используя WebView(HTML) в качестве GUI и собрать в apk.
    Ведь так? Было бы интересно почитать об этом.
  • +1
    >>Я очень люблю язык программирования Python и так же люблю Android OS

    Прямо как я, только еще и Java люблю:)
    Вопрос такой: как из всего это получить полноценную apk-шку, которую можно ставить на телефон, без всяких зависимостей? Такое вообще возможно? Или сдается мне, что нужно ставить эту прослойку скриптовую.
    • +1
      Этот процесс обещаю описать в одной из следующих статей :)
      • –1
        Ждем!
      • 0
        Сколько, если не секрет, весит подобная собранная apk-шка. Боюсь, тянет за собой весь питон и метров 10 весит пара простых активити.
      • 0
        Ждем!
      • 0
        Очень ждём!
    • 0
      как я понял, с моим слабым английским, то как сделать АПК сказано тут
  • +1
    Привет ачат.

    По теме — ruby держит? Возможно ли передать вывод скрипта, скажем, виджету?
    • 0
      Насчет чистого ruby не в курсе, но JRuby точно поддерживает.
  • 0
    А какой древности там питон?
    • 0
      Только что посмотрел — 2.6, но вы можете собрать и свою версию.
  • 0
    В плане «hello world» — интересно. Но, неужели знать карму в случайный момент времени так критично.
    • +1
      Если обратить внимание на теги статьи, то там «sl4a, Python, Android», а не на «хабр, кармадрочерство». Пример нужно рассматривать как вариант «Hello World!» для хабражителей.
    • 0
      Это всего лишь красивое оформление.
      Зачем всё воспринимать так буквально?
  • 0
    А что за клавиатура?
    • +1
      Идет вместе с этим редактором кода
      • 0
        Спасибо. На milestone, правда, бесполезна.
  • 0
    Кстати, существует и pygame для Андроида: market.android.com/details?id=org.renpy.pygame
  • 0
    Долго не хотел покупать никаких гаджетов, считал что телефон должен быть телефоном. Но зная, что андроид можно питонить, буду брать андроид.
    Спасибо за статью.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.