Blog (92)
Komentarze (104)
Recenzje (0)

Nowoczesność czyli LTE i Cordova ?

@marcinw2Nowoczesność czyli LTE i Cordova ?14.12.2013 22:25

Ostatnio miałem okazję "pobawić się" przez chwilę S4 mini i9195 z LTE. I chociaż telefon ten nie obsługuje wszystkich sieci używanych w Polsce (konkretnie TD-LTE w paśmie 38), to ja akurat chciałem sprawdzić sobie zasięg w Play. Wejście do menu i konsternacja - opcji LTE brak. Krótkie googlowanie, użycie aplikacji ServiceMode Shortcut i jest....ikonka 4G. Niewątpliwie pomimo bałaganu (używanie wielu pasm, brak urządzeń "wielomodowych", ich blokowanie programowe, itd. itd.) jesteśmy świadkami pewnej rewolucji... I chociaż niektórzy operatorzy oferują niskie prędkości (więcej można osiągnąć nawet na HSDPA+), to z czasem ta technologia zdecydowanie może spowodować zmianę sposobu korzystania z różnych urządzeń (o ile rozwiązane zostanie "kilka" problemów typu zasilanie)....

A aplikacje ? Czy dalej będą natywne czy wszystko będzie siecią ?

Ostatnio potrzebowałem sprawdzić sobie jeden z aspektów - daje się bowiem zauważyć, iż niektórzy programiści już teraz korzystają z takich frameworków jak Cordova. Czy wprowadza on opóźnienia przy dostępie do bazy danych na Androidzie ?

W tym celu przygotowałem dwie aplikacje – jedna korzystająca z ostatniej Cordovy (3.2.0), wtyczki CordovaSQLLitePlugin i SQL Ciphera (bądź co bądź dane powinny być szyfrowane, prawda ?) i druga korzystająca z SQL Ciphera (kod javowy androidowy). Wyniki są następujące:

  • mało operacji, czyli otwarcie bazy, stworzenie tabeli, zrobienie w jednej transakcji 100 Insert, zrobienie 100 Insert w 100 transakcjach i zrobienie Select – kod „czysty” ok. 9230 ms, Cordova ok. 9379 ms (sa to wartości uśrednione z 5 pomiarów), czyli różnica wynosi ok. 1,6%
  • to samo co w 1, ale ze zwiększeniem ilości Insert (10000 w transakcji, 100 w oddzielnych transakcjach) – Cordova średnio 24630 ms, Android średnio 10827 ms (różnica 56% na korzyść Androida)
  • to samo co w 1, ale ze zwiększeniem ilości Insert (20000 w jednej transakcji w kodzie Androidowym + 100 w 100 transakcjach, 10000 w jednej transakcji+10000 w jednej transakcji+100 w 100 transakcjach w Cordovie, tutaj wystąpił problem z timeoutem, stąd uzycie 2 x10000 Insertów) – Cordova średnio 42136 ms, występowały pewne problemy pamięciowe, natomiast Android średnio 14260 ms (różnica 66% na korzyść Androida)
  • otwarcie bazy, stworzenie tabeli, zrobienie w jednej transakcji 100 Insert, zrobienie 100 Insert w 100 transakcjach i zrobienie 100 Select w 100 transakcjach – Android ok. 9103 ms, Cordova ok. 9786 ms (6,9% różnicy na korzyść Androida)

Ktoś mógłby powiedzieć, że przecież to jak udowadnianie, że koło jest okrągłe...i pewnie tak, bo aplikacje webowe w dalszym ciągu wydają się mocno przegrywać, niemniej jednak czasem trzeba mieć jakieś konkretne argumenty, prawda ? I nic to, że w rzeczywistości można nie potrzebować 10000 operacji Insert, ważne, że różnica bywa hmmm dosyć szokująca.

A Cordova to czasem tylko jeden z wielu frameworków używanych przy aplikacjach webowych - jest jeszcze jQuery, Dojo, itd. które zapewne też dodają to i owo i które też mogą mieć swoje błędy i przypadłości... Ale to już pewnie temat na inny raz (można zresztą poczytać z jakimi podstawowymi błędami walczyłem kiedyś tworząc aplikację pod Firefox OS: Katedra czy bazar, korpo czy anarchia ?.... ).

Jeszcze tylko krótkie wypunktowanie, czyli jak "proste" było przygotowanie aplikacji webowej tym razem:

[list] [item]pobieramy source.zip z http://cordova.apache.org/ (w chwili pisania 3.2.0)[/item][item]rozpakowywujemy cordova-android.zip[/item][item]pobieramy ant z http://ant.apache.org/bindownload.cgi [/item][item]dodajemy ścieżkę do tools i platform-tools z Android SDK i ścieżkę ant do PATH[/item][item]do katalogu frameworks z cordova-android dodajemy SQLCipher z http://sqlcipher.net/sqlcipher-for-android/ (dodajemy icudt46l.zip do assets i biblioteki do libs)[/item][item]do katalogu frameworks z cordova-android dodajemy CordovaSQLLitePlugin z https://github.com/lite4cordova/Cordova-SQLitePlugin (m.in. na podstawie informacji z http://brodyspark.blogspot.com/2012/12/using-sqlcipher-for-android-wit... - do config.xml w res\xml należy dodać

<feature name="SQLitePlugin">
<param name="android-package" value="org.pgsqlite.SQLitePlugin" />
</feature>

do src\org\pgsqlite spatchowany SQLitePlugin.java, do assets\www spatchowany SQLitePlugin.js)[/item][item]używamy create z bin z cordova-android do stworzenia nowego projektu androidowego (można z niego pobrać CordovaSQL.java i pliki z assets)[/item][item]w katalogu framework w cordova-android kompilujemy plik jar[/item][item]tworzymy nowy projekt androidowy z plikiem jar z poprzedniego punktu, bibliotekami sqlcipher, odpowiednim layoutem zawierającym org.apache.cordova.CordovaWebView, odpowiednim plikiem config.xml w res\xml i plikami inicjującymi Cordovę w pliku java[/item][/list]

Proste, prawda ?

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.