sobota, 28 grudnia 2013

Adobe AIR instalacja Linux


1) Uruchamiamy terminal i wpisujemy w nim polecenie, które pobierze plik instalacyjny np:

wget http://airdownload.adobe.com/air/lin/download/3.9/AdobeAIRInstaller.bin
2) Następnie wpisujemy w konsoli:
chmod +x AdobeAIRInstaller.bin
3) Na koniec uruchamiamy program instalacyjny poleceniem:
sudo ./AdobeAIRInstaller.bin

czwartek, 29 sierpnia 2013

Krótki kurs generowania wykresów w STATPLANET

Temat: Edukacja w Polsce
Wskaźnik: Liczba uczniów w szkołach podstawowych (szkolnictwo publiczne i prywatne -dot. uprawnienia szkoły publicznej)

Wybieramy zakładkę "Education"a po prawej stronie wybieramy kraj Polska, aby wyświetlić wykres dla Polski


kliknij nasz kraj na mapie a uzyskamy liczbę uczniów w szkolnictwie podstawowym



Na tym wykresie można również porównać inne kraje w stosunku do Naszego. Aby dodać państwo do grafiki, wystarczy kliknąć je na mapie. W ten sposób można umieścić wiele krajów na jednym wykresie. Po naprowadzeniu kursora myszy na określony kraj zobaczymy podgląd wartości liczbowej. Aby usunąć kraj z wykresu, ponownie klikamy myszą. Serwis oprócz aktualnych informacji udostępnia dane z ostatnich lat. Możemy ten proces prześledzić oglądając w formie efektownej animacji, pokazującej w naszym przykładzie, jak malała liczba uczniów. Aby uruchomić animację, klikamy na przycisk ulokowany na dole mapy.

Mapy i wykresy możemy ściągać z serwisu w formie obrazu rastrowego. Jeśli chcemy pobrać wizualizację na dysk, klikamy ikonę ze strzałką skierowaną w dół, na panelu narzędzi na dole z lewej strony mapy.

Jeśli chcemy pobrać mapę, w oknie, które się pojawi, to wybieramy opcję Export map
Jeśli chcemy pobrać wykres, to wybieramy opcję Export graph
Jeśli chcemy pobrać  same dane liczbowe, to wybieramy opcję Export data

Statystyki STAT PLANET -interaktywne mapy światowych statystyk

Stat Planet to tworzenie interaktywnych tematycznych map, wizualizacja danych. Źródłem danych jest projekt SACMEQ który opiera się o dane m.in z UNESCO. Stat Planet można wykorzystywać do tworzenia map tematycznych na podstawie różnych wskaźników rozwoju z zakresu edukacji, ochrony zdrowia, i ekonomii. Stat Planet możemy również pobrać jako aplikacje co daje możliwość podłączenia własnych źródeł danych i tworzenie własnych map tematycznych. Zestaw aplikacji został przygotowany w technologii Flash.
Stat Planet jest dobrym źródłem informacji zarówno dla specjalistów i studentów do tworzenia map tematycznych. Mapy mogą być np wykorzystywane przez studentów do określenia przyczyny nierówności gospodarczej (stopy życia) jakie wstępują między krajami i regionami świata.

Przykład


Film  instruktażowy


Jak stworzyć interaktywną mapę w 5 minut
 


Przykład wykorzystania narzędzi STATPLANET przez Ministerstwo Gospodarki Afganistanu

STATPLANET i jego podział

Kategoria "Mapping Software"

  • StatPlanet Lite to wersja lekka z obsługą ESRI, shapefile map z limitem jednego wskaźnika 
  • StatPlanet wersja z limitem do siedmiu wskaźników
  • StatPlanet Plus rozszerzona wersja ze wsparciem dla ESRI map shapefile, obsługuje duże zestawy danych
Kategoria "Visualization Software"

Kategoria "StatWorld"

StatWorld to interaktywne mapy Otwartych Danych w wersji Desktop z internetową wersją StatPlanet, która daje nam ponad 300 światowych statystyk na temat gospodarki, zdrowia, edukacji itd.
  • Dostęp do danych UNDP, UNESCO, UNICEF, WHO, World Bank
Darmowe mapy to zestaw ponad 30 krajów map shapefile krajów.
Wszystkie zbiory tzn; programy i manuale są dostępne w dziale Download

Adobe Launchpad - droga na skróty

Aplikacja Adobe Launchpad umożliwia zaprojektowanie prostych aplikacji w środowisku AIR a następnie możemy je opublikować dla urządzeń z systemem Android. Z wybranych przez nas funkcji Projekt Flex możemy zaimportować (plik ZIP) do IDE Flash Builder a następnie go zmieniać i rozbudowywać.

Na pierwszym ekranie programu Adobe AIR Launchpad mamy możliwość wyboru typu przyszłej aplikacji, - desktopowa lub mobilna . Wpisujemy nazwę aplikacji, wybieramy rozdzielczość ekranu. 
Po skonfigurowaniu głównego menu możemy wybrać jedną z dostępnych funkcji dla aplikacji jak np:
aparat fotograficzny i dostęp do akcelerometru dla mobilnych programów.

Adobe AIR Launchpad to innowacyjne narzędzie, które wspomaga deweloperów Adobe Flex aby mogli rozpocząć budowę desktopowych i mobilnych aplikacji utworzonych w środowisku Adobe AIR.

Niestety projekt nie jest już rozwijany. Był dostępny za darmo na stronie producenta.
Aplikacja do pobrania z Softpedii
  
Filmy instruktażowe

Pierwszy film autorstwa James Ward

 
 

Test aplikacji 


 

 Trzeci film autorstwa Peter Withan

 

a na koniec oficjalny film Adobe prezentuje Technical Evangelist  Pani Holly Schinsky



 

środa, 14 sierpnia 2013

CSS Menu

W tym artykule odchodząc :) od wytyczonego kierunku technologii AIR chciałbym przedstawić program


CSS Menu, który to jest programem typu WYSIWYG, za pomocą którego w łatwy sposób stworzymy efektowne i w pełni funkcjonalne menu.

Narzędzie to umożliwia wygenerowanie poziomych, pionowych, rozwijanych menu.
W wersji bezpłatnej mamy następujące templatki

Android
Mac
Compact Gray





Obsługa programu jest prosta, wystarczy wybrać menu,  dostosować ustawienia kolorów i czcionek, budowanie podmenu itd. Na końcu pozostaje nam jedynie opublikować nasze działania jako format HTML. Istnieje możliwość zmiany programu do płatnej wersji Single lub Unlimited Website, która oprócz dodatkowych templatków umożliwia użytkownikowi dostęp do wsparcia technicznego oraz wszystkich aktualizacji gdzie jest to niedostępne w wersji bezpłatnej.

piątek, 9 sierpnia 2013

TOUR DE FLEX

Tour De Flex to dobry sposób nauki FLEX-a. W najnowszej wersji mamy do dyspozycji 500 przykładowych aplikacji, w tym prezentujące nowe funkcje jak:
  • obsługa Multi-Touch,
  • dostęp do danych z mikrofonu,
  • globalna obsługa błędów.

Program został napisany w środowisku FLEX, dystrybuowany jako AIR
Dzięki programowi mamy możliwość podglądać przykłady wykorzystania komponentów, budowy własnych komponentów, czy implementacji środowiska AIR w programie Flex.

Program zawiera liczne przykłady wraz z kodem źródłowym ułatwiającym zrozumienie ich działania.
Wszystkie informacje są aktualizowane na bieżąco z zasobów firmy Adobe.

Istnieje także wersja mobilna

Wymagane uprawnieniania do instalacji na rządzenia Android
  • android.permission.INTERNET
  • android.permission.ACCESS_FINE_LOCATION
  • android.permission.ACCESS_COARSE_LOCATION
  • android.permission.CAMERA
oraz wtyczki do Flash Builder, Eclipse

Program można zainstalować klikając poniżej

PhoneGap programowanie aplikacji mobilnych

PhoneGap co to jest i dlaczego jest za darmo od Adobe. Jest to aplikacja która pozwala programistom na łatwe tworzenie aplikacji mobilnych, działających na różnych platformach. Również istnieje wersja w chmurze pod adresem https://build.phonegap.com/ wymagane jest konto ID Adobe lub GitHub.Mamy dwie możliwości : naszą aplikację możemy udostępnić społeczności (open source) lub tylko dla siebie (private).

PhoneGap możemy tworzyć równolegle oprogramowanie dla systemów operacyjnych takich, jak:
  • iOS,
  • Android,
  • BlackBerry,
  • WebOS,
  • Windows Phone 7,
  • Symbian,
  • Bada.
Zalety :
 -możliwość wykorzystania zewnętrznych bibliotek, takich jak: jQuery Mobile, BackBone, Sencha Touch, jQTouch, Jo, XUI.
- dostęp do sprzętowej geolokalizacji z użyciem GPS, do akcelerometru, kontaktów znajdujących się w telefonie, plików z pamięci wewnętrznej, kamery, powiadomień wibracyjnych, zdarzeń dotykowych

Wady: 
-brak GUI (brak możliwości projektowania layout'u, wykorzystania natywnych kontrolek)

W wersji on-line wykonujemy upload pliku zip
Wpisujemy nazwę naszej aplikacji i wciskamy przycisk "Ready to build"




Zakończony proces budowania aplikacji. Wybór gotowej aplikacji dla określonego typu platformy



PhoneGap umożliwia osadzić kod naszej aplikacji webowej w lokalnym środowisku platformy co daje złudzenie uruchamiania aplikacji natywnej. Zaletą tego" frameworka" jest użycie powszechnie znanych webowych technologii HTML5, JavaScript, CSS.
Dokumentacja projektu znajduje się z uwzględnieniem na poszczególne platformy pod tym linkiem urządzenia PhoneGap

środa, 31 lipca 2013

Programowanie gier na urządzenia mobilne przy wykorzystaniu Flash

Stencyl to narzędzie do tworzenia gier m.in dla systemu Android bez znajomości programowania.
Jest za darmo dostępny dla Windows i Linux.
Program posiada wbudowany edytor skryptów ActionScript (odmiana javascript, przeznaczona dla Flash)

Możemy tworzyć gry: przygodowe, labirynty, zręcznościowe, strzelanki a następnie  publikować je.

Po prostu układamy klocki : )




Druga propozycja to serwis Sploder w którym można wykreować swój świat przy pomocy technologii FLASH po prostu samodzielnie możesz stworzyć swoją planszę lub zagrać w testową grę a następnie ją opublikować.



Uprawnienia aplikacji

Jak dokonać zmianę uprawnień na poziomie deskryptora aplikacji.?
Edytując plik deskryptora najczęściej występuje pod nazwą application.xml. Ustawienia można znaleźć w znaczniku <android>

Przykładowa sekcja uprawnień w deskryptorze aplikacji

<android>
    <manifestAdditions>
    <![CDATA[
    <manifest android:installLocation="auto">
        <uses-permission android:name="android.permission.NAZWA_UPRAWNIENIA"/>
        <uses-permission android:name="android.permission.INTERNET"/>
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
        <uses-configuration android:reqFiveWayNav="true"/>
        <supports-screens android:normalScreens="true"/>
        <uses-feature android:required="true" android:name="android.hardware.touchscreen.multitouch"/>
        <application android:enabled="true">
            <activity android:excludeFromRecents="false">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN"/>
                    <category android:name="android.intent.category.LAUNCHER"/>
                </intent-filter>
            </activity>
            <activity>
            </activity>
        </application>
    </manifest>
    ]]>
    </manifestAdditions>
</android>


Dodanie uprawnienia dokonuje się przez dodanie kolejnej linii znacznika <uses-permission...
gdzie należy zastąpić fragment NAZWA_UPRAWNIENIA

Pełny zestaw dostępnych uprawnień dla manifest

Przykład

<uses-permission android:name="android.permission.ACCESS_CHECKIN_PROPERTIES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_SURFACE_FLINGER" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCOUNT_MANAGER" />
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<uses-permission android:name="android.permission.BATTERY_STATS" />
<uses-permission android:name="android.permission.BIND_APPWIDGET" />
<uses-permission android:name="android.permission.BIND_DEVICE_ADMIN" />
<uses-permission android:name="android.permission.BIND_INPUT_METHOD" />
<uses-permission android:name="android.permission.BIND_REMOTEVIEWS" />
<uses-permission android:name="android.permission.BIND_WALLPAPER" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BRICK" />
<uses-permission android:name="android.permission.BROADCAST_PACKAGE_REMOVED" />
<uses-permission android:name="android.permission.BROADCAST_SMS" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<uses-permission android:name="android.permission.BROADCAST_WAP_PUSH" />
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.CALL_PRIVILEGED" />
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" />
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CLEAR_APP_CACHE" />
<uses-permission android:name="android.permission.CLEAR_APP_USER_DATA" />
<uses-permission android:name="android.permission.CONTROL_LOCATION_UPDATES" />
<uses-permission android:name="android.permission.DELETE_CACHE_FILES" />
<uses-permission android:name="android.permission.DELETE_PACKAGES" />
<uses-permission android:name="android.permission.DEVICE_POWER" />
<uses-permission android:name="android.permission.DIAGNOSTIC" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.DUMP" />
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
<uses-permission android:name="android.permission.FACTORY_TEST" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.FORCE_BACK" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.GET_PACKAGE_SIZE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.GLOBAL_SEARCH" />
<uses-permission android:name="android.permission.HARDWARE_TEST" />
<uses-permission android:name="android.permission.INJECT_EVENTS" />
<uses-permission android:name="android.permission.INSTALL_LOCATION_PROVIDER" />
<uses-permission android:name="android.permission.INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.MANAGE_APP_TOKENS" />
<uses-permission android:name="android.permission.MASTER_CLEAR" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
<uses-permission android:name="android.permission.MOUNT_FORMAT_FILESYSTEMS" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.NFC" />
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_FRAME_BUFFER" />
<uses-permission android:name="android.permission.READ_HISTORY_BOOKMARKS" />
<uses-permission android:name="android.permission.READ_INPUT_STATE" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.READ_SYNC_STATS" />
<uses-permission android:name="android.permission.REBOOT" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.RECEIVE_MMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECEIVE_WAP_PUSH" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.REORDER_TASKS" />
<uses-permission android:name="android.permission.RESTART_PACKAGES" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.SET_ACTIVITY_WATCHER" />
<uses-permission android:name="android.permission.SET_ALARM" />
<uses-permission android:name="android.permission.SET_ALWAYS_FINISH" />
<uses-permission android:name="android.permission.SET_ANIMATION_SCALE" />
<uses-permission android:name="android.permission.SET_DEBUG_APP" />
<uses-permission android:name="android.permission.SET_ORIENTATION" />
<uses-permission android:name="android.permission.SET_POINTER_SPEED" />
<uses-permission android:name="android.permission.SET_PROCESS_LIMIT" />
<uses-permission android:name="android.permission.SET_TIME" />
<uses-permission android:name="android.permission.SET_TIME_ZONE" />
<uses-permission android:name="android.permission.SET_WALLPAPER" />
<uses-permission android:name="android.permission.SET_WALLPAPER_HINTS" />
<uses-permission android:name="android.permission.SIGNAL_PERSISTENT_PROCESSES" />
<uses-permission android:name="android.permission.STATUS_BAR" />
<uses-permission android:name="android.permission.SUBSCRIBED_FEEDS_READ" />
<uses-permission android:name="android.permission.SUBSCRIBED_FEEDS_WRITE" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.UPDATE_DEVICE_STATS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.USE_SIP" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_APN_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_GSERVICES" />
<uses-permission android:name="android.permission.WRITE_HISTORY_BOOKMARKS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SMS" />
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />









poniedziałek, 29 lipca 2013

System logowania - LOGCAT Eclipse, Trace FlashDevelop

Dziennik zdarzeń LOGCAT jest instalowany razem z SDK Android
Zdarzenia mają charakter: alarmujący-błędy systemowe lub informacyjny.
Przeglądanie logu aplikacji pozwala nam śledzić wykonanie programu np w przypadku gdy dany proces nie możemy podłączyć do debuggera.
Debugger nie zawsze pozwala nam na zlokalizowanie błędu.
Analizujemy wykonanie kodu przez metody, które znajdziemy w klasie dziennika aplikacji LOGCAT

Do logowania zdarzeń wykorzystujemy klasę android.uti.Log

poziomy zdarzeń

verbose
debug
information
warning
error

wszystkie możemy przechwycić przez parametr obiektu Throwable -czyli obiektu nadklasy wszystkich błędów i wyjątków.

W Eclipse, przechodzimy Window-> Show View -> Other -> Android-> Logcat.

W przypadku środowiska FlashDevelop wybieramy z menu View > Flash Log Viewer.
Wciskamy ikonę 'Start tracking’


Domyślnie śledzenie dziennika logów jest wyłączone.
Innym sposobem uruchomienia  z menu wybieramy Tool > Program Setting w sekcji z wtyczkami wybieramy FlashLogViewer opcję Misc - start tracking z menu rozwijanego wybieramy ‘onBuildComplete’

Publikowanie aplikacji AIR w Google Play

Google Play to oficjalny sklep dystrybucyjny oprogramowania. Sklep ten umożliwia szybkie wyszukiwanie i zakup produktu oraz przesyła programy i ich zdalną aktualizację.Sklep Google udostępnia także narzędzia do zarządzania sprzedaż swoich produktów, promocji, komunikacji między użytkownikami

Podejmujemy kroki

1.Zmieniamy zestaw ikon - aby m.in uatrakcyjnić wygląd np. ikony Launcher
2.Testowanie apkikacji
   -uruchomienie aplikacji na urządzeniach rzeczywistych i emulatorach
   -parametry: wydajnościowe, wersję systemu, konfigurację, typ ekranu
   -beta testerzy jeśli takich znajdziemy :). Sklep ten jest bardzo otwarty ponieważ nie stosuje żadnych   restrykcji i umożliwia użytkownikowi końcowemu wypróbowanie aplikacji przez 15 minut z możliwością pełnego zwrotu pieniędzy

3.Optymalizacja kodu

 -oczyszczenie lodu aplikacji ze wszystkich zbędnych zmiennych i wywołań związanych z diagnostyką, martwych fragmentów kodu

4.Grupa docelowych użytkowników (odbiorców) tzn; nie można ograniczyć się tylko do jednej wersji systemu

5.Wprowadzić kontrolę wersji oprogramowania.
Aplikacje Androidowe wersjonowane są poprzez wpisy w pliku AndroidManifest.xml

-kod wersji
-nazwa wersji

6.Każda aplikacja musi być podpisana cyfrowo

7.Opracowanie tekstu licencji - ustalenie zasad korzystania z produktu dla końcowego użytkownika

8.Zakładamy konto

Pozwoli nam udostępniać i sprzedawać nasze produkty
Pamiętaj !!! Jeśli połączymy konto Google z kontem Google Play nie będziemy już tego zmienić bez utworzenia nowego konta.

Logujemy się do GP podając nasz identyfikator następnie podajemy dane - naszą nazwę dostawcy oprogramowania, adres URL, telefon aż do otwarcia witryny Google Checkout

Wnosimy opłatę rejestracyjną wysokości 25$ i podpisujemy zgodę z Google -kontrakt, który reguluje zasady działania sklepu (zaakceptować warunki licencji)

9.Dla aplikacji określamy cenę, przypisujemy do kategorii, zaznaczamy pozycję zabezpieczania aplikacji przed jej kopiowaniem, zrzuty ekranowe dodajemy z naszej aplikacji - przynajmniej dwa zrzuty oraz ikonę w dużym formacie 512 x 512 px.
Do wgranych już aplikacji możemy obserwować ich ocenę przez użytkowników, inne parametry - licznik pobrań, przesyłane są do nas również zgłoszenia błędów.

Aplikacje mogą być darmowe i mogą również zarabiać na siebie a zyski pochodzą z wygenerowanych reklam. Sprzedać również możemy dodatki do gier, zdjęcia które mogą posłużyć jako awatary w aplikacjach komunikacyjnych.
Za każdą sprzedaż Google pobiera 30% jako prowizję.

Pamiętaj!!! Tylko po prawidłowym zbudowaniu pliku APK możesz opublikować aplikację w sklepie Google Play

Zasady opublikowania aplikacji AIR

1. Przygotować wersję finalną (release) aplikacji
2. Jeśli uprawnienie INTERNET, nie jest wymagane do poprawnego działania aplikacji to wyłączamy.
3. Zestwa ikon dołączony powinien mieć wszystkie standardowe rozmiary (36x36, 48x48, 72x72)
4. URL do środowiska AIR powinien wskazywać na Google Play.




sobota, 27 lipca 2013

Aplikacja PackageAssistantPro cz.2

Rozszerzając temat  postu "Aplikacja PackageAssistantPro"

Jeśli mamy już gotowy zestaw ikon (rozmiary) to umieszczamy ikony w folderze np o nazwie icons w zależności od tego jaka ścieżka została podana w deskryptorze aplikacji.

W systemie przewidziano mechanizm rozwiązujący problem zróżnicowania rozmiaru ekranów urządzeń poprzez zastosowanie klasy urządzeń dot. rozdzielczości. Parametry takie jak np rozmiar bardzo wysoki, wysoki, śred
ni, mały którym odpowiadają konkretne specyfikacje  np WQVGA400 dla średniej wielkości ekranu o niskiej rozdzielczości. Ustawienia te znajdują się w pliku AndroidManifest gdzie są wskazywane typy ekranów z jakimi pracuje nasza aplikacja także dotyczy to zestawu ikon, które zawarte w aplikacji powinny być umieszczane w odpowiednich folderach wskazując na rozdzielczość ekranu, dla jakiej aplikacja jest przeznaczona.



Poniżej przykładowy plik manifest z apka (opis aplikacji)

<?xml version="1.0" encoding="utf-8"?>
<manifest package="air.air.test2" android:versionCode="1000000" android:versionName="1.0.0" android:installLocation="auto"
  xmlns:android="http://schemas.android.com/apk/res/android">
    <application android:label="test2" android:icon="@drawable/icon" android:enabled="true">
        <activity android:theme="@android:style/Theme.NoTitleBar" android:label="test2" android:name=".AppEntry" android:excludeFromRecents="false" android:launchMode="singleTask" android:screenOrientation="nosensor" android:configChanges="keyboardHidden|orientation" android:windowSoftInputMode="stateHidden|adjustResize">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <meta-data android:name="aspectRatio" android:value="landscape" />
            <meta-data android:name="autoOrients" android:value="false" />
            <meta-data android:name="fullScreen" android:value="true" />
            <meta-data android:name="uniqueappversionid" android:value="8bae27c1-1785-4e62-84c0-f56b1fdad8f2" />
            <meta-data android:name="initialcontent" android:value="test2.swf" />
        </activity>
    </application>
    <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="5" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="true" />
</manifest>


Poniżej zawartość pliku -deskryptor aplikacji (XML) uwzględniający zestaw ikon

<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://ns.adobe.com/air/application/2.5">
    <id>air.Aplikacja</id>
    <filename>Aplikacja</filename>
    <name>Aplikacja</name>
    <versionNumber>1.0.0</versionNumber>
    <initialWindow>
        <content>movie.swf</content>
        <aspectRatio>landscape</aspectRatio>
        <autoOrients>false</autoOrients>
        <fullScreen>true</fullScreen>
        <renderMode>gpu</renderMode>
        <title>Aplikacja</title>
        <visible>true</visible>
    </initialWindow>


    <supportedProfiles>mobileDevice</supportedProfiles>

    <android>

        <manifestAdditions><![CDATA[
            <manifest android:installLocation="auto">

                <uses-permission android:name="android.permission.INTERNET"/>

                <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

                <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

                <uses-feature android:required="true"
android:name="android.hardware.touchscreen.multitouch"/>

                <application android:enabled="true">

                    <activity android:excludeFromRecents="false">

                        <intent-filter>

                            <action android:name="android.intent.action.MAIN"/>

                            <category android:name="android.intent.category.LAUNCHER"/>

                        </intent-filter>

                    </activity>

                </application>

            </manifest>

        ]]
></manifestAdditions>

    </android>

   <icon>
        <image128x128>icons/appIcon_128.png</image128x128>
        <image48x48>icons/appIcon_48.png</image48x48>
        <image32x32>icons/appIcon_32.png</image32x32>
        <image16x16>icons/appIcon_16.png</image16x16>
    </icon>

    <fileTypes/>

    <version>1.0</version>

</application>



 Wczytanie pliku deskryptora aplikacji z zestawem ikon





wtorek, 23 lipca 2013

Integracja:- FlashDevelop i emulator ADV

Jeśli chcemy zintegrować emulator z SDK Android (AVD) w środowisku FlashDevelop to musimy najpierw uruchomić dołączonego do SDK managera 


Po wybraniu i zaktualizowaniu bibliotek SDK przyszedł czas na  uruchomienie emulatora z menu 'Tools' wybieramy 'Manage AVDs' tworzymy nowe wirtualne urządzenie z Androidem  (AVD)-> klikamy przycisk 'New'

Wypełniamy pola tak jak na poniżej załączonym screenie


AVD name - to nazwa emulowanego urządzenia z Androidem
Device - lista rozwijana typ urządzenia np Nexus
Target - lista rozwijana wybór systemu Android wybierz 4.1.2 - API Level 16 lub nowszy
CPU/ABI -
Keyboard -
Skin - skórka
Front/Back Camera -
Memory Options -
Internal Storage -
SD Card -
Emulation Options (Snapshot, Use Host GPU) -

Po konfiguracji uruchamiamy emulator wybieramy urządzenia i wciskamy przycisk 'Start'

Zobaczymy standardowy ekran ładowania systemu Android, a następnie ekran z wizerunkiem kłódki.
Po odblokowaniu ekranu będziemy mieli dostęp do podstawowych aplikacji jak Browser, Contacts lub E-mail. Obraz emulatora posiada domyślnie włączone wszystkie opcje programistyczne jak np debugowanie USB.

Następnie przechodzimy do lokalizacji "C:\Program Files\FlashDevelop\Tools\flexsdk\runtimes\air\android\emulator"

Kopiujemy 'Runtime.apk' i wklejamy do folderu Android SDK "platform-tools" i programem CMD Here z menu kontekstowego wybieramy "Open command line window here" przechodzimy do folderu  "platform-tools" i wykonujemy komendę adb install Runtime.apk
W ten sposób zainstalowaliśmy Runtime.apk na urządzeniu wirtualnym.

Sprawdzamy działanie emulatora komendą adb devices

C:\adt\adt\sdk\platform-tools>adb devices
List of devices attached
emulator-5554   device


Uruchamiamy środowisko FlashDevelop

Pliki konfiguracyjne
    Windows XP: C:\Document and Settings\<username>\Local Settings\Application Data\FlashDevelop
    Windows Vista / 7 / 8: C:\Users\<username>\AppData\Local\FlashDevelop

Jeśli nie pobraliśmy bibliotek SDK w trakcie konfiguracji środowiska należy
ręczna przeprowadzić instalacje bibliotek SDK
Konfigurujemy Flexa

Z menu wybieramy Tools -> Program Settings lub wciskamy F10
Z dostępnych wtyczek wybieramy AS3Context ustalamy lokalizacje bibliotek dla Flexa


Przechodzimy do folderu ..\bin
Flex ustali wersje podłączonej wersji SDK i z jakiej będzie korzystać wersji AIR




Uruchamiamy nowy projekt AIR Android AS3, aby to zrobić powinieneś ściągnąć ten plik
Jest to template do tworzenia projektów na urządzenia Android.

Template pochodzi z blogu Guave Studio Blog 
Plik "airandroidtemplate.fdz" należy uruchomić
Rozpakuje się archiwum


Po tym uruchomi się automatycznie środowisko FlashDevelop
Wybieramy Project -> new project -> AIR Android AS3




Edytujemy plik setting.bat znajdujący się w folderze scripts dostosowujemy do własnych ścieżek dostępu bibliotek SDK

@echo off
set PROJECT_NAME=Projekty
set PROJECT_ID=Projekty
set ANDROID_PATH_TOOLS="C:\adt\adt\sdk\tools"
set AIR_PATH_BIN="C:\AIRSDK_Compiler\bin"
set CERTIFICATE_FILE="SelfSigned.p12"
set CERTIFICATE_PASSWORD=test
set CERTIFICATE_CN=SelfSigned
set AIR_APP=../application.xml
set OUTPUT_PATH=../air
set OUTPUT_APK=%OUTPUT_PATH%/%PROJECT_NAME%.apk
set OUTPUT_AIR=%OUTPUT_PATH%/%PROJECT_NAME%.air

Generujemy certyfikat - wykonujemy skrypt CreateCertificate.bat
zostanie wygenerowany certyfikat o nazwie SelfSigned.p12 w folderze script

Ostatnim krokiem będzie wykonanie skryptu 'PackageApplication.bat'

Mogą pojawić się problemy z namespaces w deskryptorze aplikacji plik appliacation.xml
<application xmlns="http://ns.adobe.com/air/application/2.5"> w zależności od tego jaką wersje biblioteki AIR posiadamy.