Tworząc aplikacje na komórki z Symbianem trzeba robić paczkę instalacyjną. Jest trochę powodów dla których warto robić takie paczki instalacyjne. Większość ludzi nie będzie celowo instalować interpretera Pythona, żeby uruchamiać skrypt Pythona. Trochę jest z tym problemów jak się ma folderze Python kilkadziesiąt skryptów. Zrobienie paczki instalacyjnej może ułatwić szybsze uruchamianie skryptu jako aplikacji Symbian zainstalowanej w folderze Instalacje.
Obecnie są 2 silniki Pythona: Jeden silnik o nazwie "Python for s60" instaluje się głównie na komórkach z S60 3rd i ostatnia wersja nosi numer 1.4.5. Od roku czasu programiści pracują nad wersjami silnika o nazwie "Python Runtime" obecnie najnowsza wersja w chwili pisania tego artykułu nosi numer 1.9.7 i ma być docelowo dla modeli S60 5th oraz dla S60 3rd FP2 i S60 3rd FP2.
W praktyce to oznacza że nie zaleca się posiadania dwóch wersji silników na jednej komórce. Jest to podyktowane tym że silniki inaczej działają jako interpretery i jako biblioteki do uruchomienia aplikacji. Biorąc to pod uwagę to ze główna różnica pomiędzy S60 5th a S60 3rd polega na obsłudze ekranu dotykowego - wiec trzeba w przypadku aplikacji opierających się na klasie Canvas napisać tak żeby obsługiwały zdarzenia z dotykiem. Załóżmy że korzystamy z klas UI to w tej sytuacji kod aplikacji nie zmienia się. Teraz pozostało zrobić wersje instalacyjne dla tych którzy mają "Python for S60" i jak "Python Runtime".
W tym pierwszym przypadku trzeba pobrać bibliotekę Ensymble.py odpowiednią dla wersji Pythona w komputerze ze strony Google Code. Wystarczy pobrać też plik Openssl.exe z tej strony A następnie zrobić folder SampleApp i wrzucić pliki to tego folderu a następnie dodać plik skryptu Pythona, który będzie aplikacja Symbiana.
Oto kod przykładowego szablonu skryptu Pythona, który ma być aplikacją Symbiana.
from appuifw import *
import e32
import time
import sysinfo
import graphics
class SampleApp:
BLACK = (0,0,0)
BLUE = (51,204,255)
def __init__(self):
self.screen = None
app.title = u"Przykladowa aplikacja"
app.screen = "normal"
app.menu = [( u"About", self.about ),
( u"Exit", self.quit_app )]
self.canvas = Canvas( redraw_callback = self.redraw, event_callback = self.event )
app.body = self.canvas
self.timer = e32.Ao_timer()
self.width, self.height = self.canvas.size
self.screen = graphics.Image.new( (self.width, self.height) )
self.screen.clear( self.BLACK )
self.screen.text((5,15),u"Start", fill = self.BLUE)
self.canvas.blit( self.screen )
app.exit_key_handler = self.quit_app
def quit_app(self):
self.lock.signal()
def about(self):
note( u"Sample App", "info" )
def redraw(self,rect):
if self.screen:
self.screen.clear( self.BLACK )
self.canvas.blit( self.screen )
def event(self,event):
pass
def run(self):
self.lock = e32.Ao_lock()
self.lock.wait()
app.set_tabs( [], None )
app.menu = []
app.body = None
app.set_exit()
if __name__ == "__main__":
sw = SampleApp()
sw.run()
Następnie dodajemy plik wsadowy który ma zrobić paczkę dla tej aplikacji:
@echo off
SET VERSION=1.0.4
SET PYTHON=C:\Python25\python
SET APPNAME=SampleApp
SET CAPBLS=LocalServices+NetworkServices+ReadUserData+WriteUserData+UserEnvironment
%PYTHON% .\ensymble.py py2sis --version="%VERSION%" --heapsize=4k,5M --appname="%APPNAME%" --caps="%CAPBLS%" SampleApp.py "%APPNAME%%VERSION%.sis"
i wystarczy uruchomić.
Natomiast Ci którzy chcą zrobić aplikację pod "Python Runtime" wystarczy że pobiorą
PythonForS60_1.9.7_Setup.exe i zainstalują to. W menu Start -> Aplikacje będzie PythonforS60 1.9.7 -> PyS60 Application Package i uruchomią to. Pojawi się okno dzięki któremu będą mogli zrobić paczkę instalacyjną z aplikacją Symbiana ze skryptu Pythona. Nie należy tym programem robić paczek instalacyjnych w wersji dla silnika "Python for S60" 1.4.5 pomimo że jest taka opcja.
Brak komentarzy:
Prześlij komentarz