977 resultados para Android applications
Resumo:
In the last decade, smartphones have gained widespread usage. Since the advent of online application stores, hundreds of thousands of applications have become instantly available to millions of smart-phone users. Within the Android ecosystem, application security is governed by digital signatures and a list of coarse-grained permissions. However, this mechanism is not fine-grained enough to provide the user with a sufficient means of control of the applications' activities. Abuse of highly sensible private information such as phone numbers without users' notice is the result. We show that there is a high frequency of privacy leaks even among widely popular applications. Together with the fact that the majority of the users are not proficient in computer security, this presents a challenge to the engineers developing security solutions for the platform. Our contribution is twofold: first, we propose a service which is able to assess Android Market applications via static analysis and provide detailed, but readable reports to the user. Second, we describe a means to mitigate security and privacy threats by automated reverse-engineering and refactoring binary application packages according to the users' security preferences.
Resumo:
Private data stored on smartphones is a precious target for malware attacks. A constantly changing environment, e.g. switching network connections, can cause unpredictable threats, and require an adaptive approach to access control. Context-based access control is using dynamic environmental information, including it into access decisions. We propose an "ecosystem-in-an-ecosystem" which acts as a secure container for trusted software aiming at enterprise scenarios where users are allowed to use private devices. We have implemented a proof-of-concept prototype for an access control framework that processes changes to low-level sensors and semantically enriches them, adapting access control policies to the current context. This allows the user or the administrator to maintain fine-grained control over resource usage by compliant applications. Hence, resources local to the trusted container remain under control of the enterprise policy. Our results show that context-based access control can be done on smartphones without major performance impact.
Resumo:
Programming environments for smartphones expose a concurrency model that combines multi-threading and asynchronous event-based dispatch. While this enables the development of efficient and feature-rich applications, unforeseen thread interleavings coupled with non-deterministic reorderings of asynchronous tasks can lead to subtle concurrency errors in the applications. In this paper, we formalize the concurrency semantics of the Android programming model. We further define the happens-before relation for Android applications, and develop a dynamic race detection technique based on this relation. Our relation generalizes the so far independently studied happens-before relations for multi-threaded programs and single-threaded event-driven programs. Additionally, our race detection technique uses a model of the Android runtime environment to reduce false positives. We have implemented a tool called DROIDRACER. It generates execution traces by systematically testing Android applications and detects data races by computing the happens-before relation on the traces. We analyzed 1 5 Android applications including popular applications such as Facebook, Twitter and K-9 Mail. Our results indicate that data races are prevalent in Android applications, and that DROIDRACER is an effective tool to identify data races.
Resumo:
Ogni giorno, l'utente di smartphon e tablet, spesso senza rendersene conto, condivide, tramite varie applicazioni, un'enorme quantità di informazioni. Negli attuali sistemi operativi, l'assenza di meccanismi utili a garantire adeguatamente l'utente, ha spinto questo lavoro di ricerca verso lo sviluppo di un inedito framework.È stato necessario uno studio approfondito dello stato dell'arte di soluzioni con gli stessi obiettivi. Sono stati esaminati sia modelli teorici che pratici, con l'analisi accurata del relativo codice. Il lavoro, in stretto contatto con i colleghi dell'Università Centrale della Florida e la condivisione delle conoscenze con gli stessi, ha portato ad importanti risultati. Questo lavoro ha prodotto un framework personalizzato per gestire la privacy nelle applicazioni mobili che, nello specifico, è stato sviluppato per Android OS e necessita dei permessi di root per poter realizzare il suo funzionamento. Il framework in questione sfrutta le funzionalità offerte dal Xposed Framework, con il risultato di implementare modifiche al sistema operativo, senza dover cambiare il codice di Android o delle applicazioni che eseguono su quest’ultimo. Il framework sviluppato controlla l’accesso da parte delle varie applicazioni in esecuzione verso le informazioni sensibili dell’utente e stima l’importanza che queste informazioni hanno per l’utente medesimo. Le informazioni raccolte dal framework sulle preferenze e sulle valutazioni dell’utente vengono usate per costruire un modello decisionale che viene sfruttato da un algoritmo di machine-learning per migliorare l’interazione del sistema con l’utente e prevedere quelle che possono essere le decisioni dell'utente stesso, circa la propria privacy. Questo lavoro di tesi realizza gli obbiettivi sopra citati e pone un'attenzione particolare nel limitare la pervasività del sistema per la gestione della privacy, nella quotidiana esperienza dell'utente con i dispositivi mobili.
Resumo:
Negli ultimi decenni, le tecnologie e i prodotti informatici sono diventati pervasivi e sono ora una parte essenziale delle nostre vite. Ogni giorno ci influenzano in maniera più o meno esplicita, cambiando il nostro modo di vivere e i nostri comportamenti più o meno intenzionalmente. Tuttavia, i computer non nacquero inizialmente per persuadere: essi furono costruiti per gestire, calcolare, immagazzinare e recuperare dati. Non appena i computer si sono spostati dai laboratori di ricerca alla vita di tutti i giorni, sono però diventati sempre più persuasivi. Questa area di ricerca è chiamata pesuasive technology o captology, anche definita come lo studio dei sistemi informatici interattivi progettati per cambiare le attitudini e le abitudini delle persone. Nonostante il successo crescente delle tecnologie persuasive, sembra esserci una mancanza di framework sia teorici che pratici, che possano aiutare gli sviluppatori di applicazioni mobili a costruire applicazioni in grado di persuadere effettivamente gli utenti finali. Tuttavia, il lavoro condotto dal Professor Helal e dal Professor Lee al Persuasive Laboratory all’interno dell’University of Florida tenta di colmare questa lacuna. Infatti, hanno proposto un modello di persuasione semplice ma efficace, il quale può essere usato in maniera intuitiva da ingegneri o specialisti informatici. Inoltre, il Professor Helal e il Professor Lee hanno anche sviluppato Cicero, un middleware per dispositivi Android basato sul loro precedente modello, il quale può essere usato in modo molto semplice e veloce dagli sviluppatori per creare applicazioni persuasive. Il mio lavoro al centro di questa tesi progettuale si concentra sull’analisi del middleware appena descritto e, successivamente, sui miglioramenti e ampliamenti portati ad esso. I più importanti sono una nuova architettura di sensing, una nuova struttura basata sul cloud e un nuovo protocollo che permette di creare applicazioni specifiche per smartwatch.
Resumo:
Android is becoming ubiquitous and currently has the largest share of the mobile OS market with billions of application downloads from the official app market. It has also become the platform most targeted by mobile malware that are becoming more sophisticated to evade state-of-the-art detection approaches. Many Android malware families employ obfuscation techniques in order to avoid detection and this may defeat static analysis based approaches. Dynamic analysis on the other hand may be used to overcome this limitation. Hence in this paper we propose DynaLog, a dynamic analysis based framework for characterizing Android applications. The framework provides the capability to analyse the behaviour of applications based on an extensive number of dynamic features. It provides an automated platform for mass analysis and characterization of apps that is useful for quickly identifying and isolating malicious applications. The DynaLog framework leverages existing open source tools to extract and log high level behaviours, API calls, and critical events that can be used to explore the characteristics of an application, thus providing an extensible dynamic analysis platform for detecting Android malware. DynaLog is evaluated using real malware samples and clean applications demonstrating its capabilities for effective analysis and detection of malicious applications.
Resumo:
The battle to mitigate Android malware has become more critical with the emergence of new strains incorporating increasingly sophisticated evasion techniques, in turn necessitating more advanced detection capabilities. Hence, in this paper we propose and evaluate a machine learning based approach based on eigenspace analysis for Android malware detection using features derived from static analysis characterization of Android applications. Empirical evaluation with a dataset of real malware and benign samples show that detection rate of over 96% with a very low false positive rate is achievable using the proposed method.
Resumo:
One of the most undervalued problems by smartphone users is the security of data on their mobile devices. Today smartphones and tablets are used to send messages and photos and especially to stay connected with social networks, forums and other platforms. These devices contain a lot of private information like passwords, phone numbers, private photos, emails, etc. and an attacker may choose to steal or destroy this information. The main topic of this thesis is the security of the applications present on the most popular stores (App Store for iOS and Play Store for Android) and of their mechanisms for the management of security. The analysis is focused on how the architecture of the two systems protects users from threats and highlights the real presence of malware and spyware in their respective application stores. The work described in subsequent chapters explains the study of the behavior of 50 Android applications and 50 iOS applications performed using network analysis software. Furthermore, this thesis presents some statistics about malware and spyware present on the respective stores and the permissions they require. At the end the reader will be able to understand how to recognize malicious applications and which of the two systems is more suitable for him. This is how this thesis is structured. The first chapter introduces the security mechanisms of the Android and iOS platform architectures and the security mechanisms of their respective application stores. The Second chapter explains the work done, what, why and how we have chosen the tools needed to complete our analysis. The third chapter discusses about the execution of tests, the protocol followed and the approach to assess the “level of danger” of each application that has been checked. The fourth chapter explains the results of the tests and introduces some statistics on the presence of malicious applications on Play Store and App Store. The fifth chapter is devoted to the study of the users, what they think about and how they might avoid malicious applications. The sixth chapter seeks to establish, following our methodology, what application store is safer. In the end, the seventh chapter concludes the thesis.
Resumo:
With the ever growing trend of smart phones and tablets, Android is becoming more and more popular everyday. With more than one billion active users i to date, Android is the leading technology in smart phone arena. In addition to that, Android also runs on Android TV, Android smart watches and cars. Therefore, in recent years, Android applications have become one of the major development sectors in software industry. As of mid 2013, the number of published applications on Google Play had exceeded one million and the cumulative number of downloads was more than 50 billionii. A 2013 survey also revealed that 71% of the mobile application developers work on developing Android applicationsiii. Considering this size of Android applications, it is quite evident that people rely on these applications on a daily basis for the completion of simple tasks like keeping track of weather to rather complex tasks like managing one’s bank accounts. Hence, like every other kind of code, Android code also needs to be verified in order to work properly and achieve a certain confidence level. Because of the gigantic size of the number of applications, it becomes really hard to manually test Android applications specially when it has to be verified for various versions of the OS and also, various device configurations such as different screen sizes and different hardware availability. Hence, recently there has been a lot of work on developing different testing methods for Android applications in Computer Science fraternity. The model of Android attracts researchers because of its open source nature. It makes the whole research model more streamlined when the code for both, application and the platform are readily available to analyze. And hence, there has been a great deal of research in testing and static analysis of Android applications. A great deal of this research has been focused on the input test generation for Android applications. Hence, there are a several testing tools available now, which focus on automatic generation of test cases for Android applications. These tools differ with one another on the basis of their strategies and heuristics used for this generation of test cases. But there is still very little work done on the comparison of these testing tools and the strategies they use. Recently, some research work has been carried outiv in this regard that compared the performance of various available tools with respect to their respective code coverage, fault detection, ability to work on multiple platforms and their ease of use. It was done, by running these tools on a total of 60 real world Android applications. The results of this research showed that although effective, these strategies being used by the tools, also face limitations and hence, have room for improvement. The purpose of this thesis is to extend this research into a more specific and attribute-‐ oriented way. Attributes refer to the tasks that can be completed using the Android platform. It can be anything ranging from a basic system call for receiving an SMS to more complex tasks like sending the user to another application from the current one. The idea is to develop a benchmark for Android testing tools, which is based on the performance related to these attributes. This will allow the comparison of these tools with respect to these attributes. For example, if there is an application that plays some audio file, will the testing tool be able to generate a test input that will warrant the execution of this audio file? Using multiple applications using different attributes, it can be visualized that which testing tool is more useful for which kinds of attributes. In this thesis, it was decided that 9 attributes covering the basic nature of tasks, will be targeted for the assessment of three testing tools. Later this can be done for much more attributes to compare even more testing tools. The aim of this work is to show that this approach is effective and can be used on a much larger scale. One of the flagship features of this work, which also differentiates it with the previous work, is that the applications used, are all specially made for this research. The reason for doing that is to analyze just that specific attribute in isolation, which the application is focused on, and not allow the tool to get bottlenecked by something trivial, which is not the main attribute under testing. This means 9 applications, each focused on one specific attribute. The main contributions of this thesis are: A summary of the three existing testing tools and their respective techniques for automatic test input generation of Android Applications. • A detailed study of the usage of these testing tools using the 9 applications specially designed and developed for this study. • The analysis of the obtained results of the study carried out. And a comparison of the performance of the selected tools.
Resumo:
El presente proyecto pretende ser una herramienta para la enseñanza de la lectoescritura (enseñar a leer y a escribir) para niños con discapacidad, haciendo para ello uso de una aplicación que se ejecuta en una tablet con Sistema Operativo (S.O.) Android. Existe un vacío en el mundo de las aplicaciones para tabletas en este campo en el que se intentará poner un grano de arena para, al menos, tener una aplicación que sirva de toma de contacto a los interesados en este campo. Para establecer las funcionalidades más adecuadas al propósito de la herramienta, se ha consultado a profesionales de la logopedia de un colegio de educación especial, con cuya colaboración se ha dado forma a la estructura de la misma. La implementación de la aplicación se ha llevado a cabo con programación en entorno Java para Android. Se han incluido diferentes recursos como imágenes, pictogramas y locuciones tanto elementos con licencia libre, como elementos propios generados ‘ex profeso’ para dar la forma final a la herramienta. Podemos decir que en general esta aplicación puede ser usada para enseña a leer y escribir a cualquier niño, pero se ha dotado de unas ciertas características que la confieren una orientación especial hacia niños con necesidades educativas especiales. Para ello se ha cuidado mucho la estética, para que ésta sea lo más simple y suave posible, para hacer especial hincapié en la atención de los niños y evitar su distracción con elementos visuales innecesarios. Se ha dotado de estímulos visuales y sonoros para fomentar su interés (aplausos en caso de acierto, colores para diferenciar aciertos y errores, etc.). Se han utilizado los tamaños de letra más grandes posibles (para las discapacidades visuales), etc. El mercado cuenta con una ingente cantidad de dispositivos Android, con características muy dispares, de tamaño de pantalla, resolución y versiones del S.O. entre otras. La aplicación se ha desarrollado tratando de dar cobertura al mayor porcentaje de ellos posible. El requisito mínimo de tamaño de pantalla sería de siete pulgadas. Esta herramienta no tiene demasiado sentido en dispositivos con pantallas menores por las características intrínsecas de la misma. No obstante se ha trabajado también en la configuración para dispositivos pequeños, como “smartphones”, no por su valor como herramienta para la enseñanza de la lectoescritura (aunque en algunos casos podría ser viable) sino más bien con fines de prueba y entrenamiento para profesores, padres o tutores que realizarán la labor docente con dispositivos tablet. Otro de los requisitos, como se ha mencionado, para poder ejecutar la aplicación sería la versión mínima de S.O., por debajo de la cual (versiones muy obsoletas) la aplicación sería inviable. Sirva este proyecto pues para cubrir, mediante el uso de la tecnología, un aspecto de la enseñanza con grandes oportunidades de mejora. ----------------------- This Project is aimed to be a tool for teaching reading and writing skills to handicapped children with an Android application. There are no Android applications available on this field, so it is intended to provide at least one option to take contact with. Speech therapy professionals from a special needs school have been asked for the most suitable functions to be included in this tool. The structure of this tool has been made with the cooperation of these professionals. The implementation of the application has been performed through Java coding for Android. Different resources have been included such as pictures, pictograms and sounds, including free licenses resources and self-developed resources. In general, it can be said that this application can be used to teach learning and writing skills to any given kid, however it has been provided of certain features that makes it ideal for children with special educational needs. It has been strongly taken into account the whole aesthetic to be as simple and soft as possible, in order to get attention of children, excluding any visual disturbing elements. It has been provided with sound and visual stimulations, to attract their interest (applauses in cases of correct answers, different colours to differentiate right or wrong answers), etc. There are many different types of Android devices, with very heterogeneous features regarding their screen size, resolution and O.S. version, etc., available today. The application has been developed trying to cover most of them. Minimum screen resolution is seven inches. This tool doesn’t seem to be very useful for smaller screens, for its inner features. Nevertheless, it has been developed for smaller devices as well, like smartphones, not intended to be a tool for teaching reading and writing skills (even it could be possible in some cases), but in a test and training context for teachers, parents or guardians who do the teaching work with tablet devices. Another requirement, as stated before, in order to be able to run the application, it would be the minimum O.S. version, below that (very obsolete versions) the application would become impracticable. Hope this project to be used to fulfill, by means of technology, one area of teaching with great improvement opportunities.
Resumo:
El presente proyecto pretende ser una herramienta para la enseñanza de la lectoescritura (enseñar a leer y a escribir) para niños con discapacidad, haciendo para ello uso de una aplicación que se ejecuta en una tablet con Sistema Operativo (S.O.) Android. Existe un vacío en el mundo de las aplicaciones para tabletas en este campo en el que se intentará poner un grano de arena para, al menos, tener una aplicación que sirva de toma de contacto a los interesados en este campo. Para establecer las funcionalidades más adecuadas al propósito de la herramienta, se ha consultado a profesionales de la logopedia de un colegio de educación especial, con cuya colaboración se ha dado forma a la estructura de la misma. La implementación de la aplicación se ha llevado a cabo con programación en entorno Java para Android. Se han incluido diferentes recursos como imágenes, pictogramas y locuciones tanto elementos con licencia libre, como elementos propios generados ‘ex profeso’ para dar la forma final a la herramienta. Podemos decir que en general esta aplicación puede ser usada para enseña a leer y escribir a cualquier niño, pero se ha dotado de unas ciertas características que la confieren una orientación especial hacia niños con necesidades educativas especiales. Para ello se ha cuidado mucho la estética, para que ésta sea lo más simple y suave posible, para hacer especial hincapié en la atención de los niños y evitar su distracción con elementos visuales innecesarios. Se ha dotado de estímulos visuales y sonoros para fomentar su interés (aplausos en caso de acierto, colores para diferenciar aciertos y errores, etc.). Se han utilizado los tamaños de letra más grandes posibles (para las discapacidades visuales), etc. El mercado cuenta con una ingente cantidad de dispositivos Android, con características muy dispares, de tamaño de pantalla, resolución y versiones del S.O. entre otras. La aplicación se ha desarrollado tratando de dar cobertura al mayor porcentaje de ellos posible. El requisito mínimo de tamaño de pantalla sería de siete pulgadas. Esta herramienta no tiene demasiado sentido en dispositivos con pantallas menores por las características intrínsecas de la misma. No obstante se ha trabajado también en la configuración para dispositivos pequeños, como “smartphones”, no por su valor como herramienta para la enseñanza de la lectoescritura (aunque en algunos casos podría ser viable) sino más bien con fines de prueba y entrenamiento para profesores, padres o tutores que realizarán la labor docente con dispositivos tablet. Otro de los requisitos, como se ha mencionado, para poder ejecutar la aplicación sería la versión mínima de S.O., por debajo de la cual (versiones muy obsoletas) la aplicación sería inviable. Sirva este proyecto pues para cubrir, mediante el uso de la tecnología, un aspecto de la enseñanza con grandes oportunidades de mejora. ABSTRACT. This Project is aimed to be a tool for teaching reading and writing skills to handicapped children with an Android application. There are no Android applications available on this field, so it is intended to provide at least one option to take contact with. Speech therapy professionals from a special needs school have been asked for the most suitable functions to be included in this tool. The structure of this tool has been made with the cooperation of these professionals. The implementation of the application has been performed through Java coding for Android. Different resources have been included such as pictures, pictograms and sounds, including free licenses resources and self-developed resources. In general, it can be said that this application can be used to teach learning and writing skills to any given kid, however it has been provided of certain features that makes it ideal for children with special educational needs. It has been strongly taken into account the whole aesthetic to be as simple and soft as possible, in order to get attention of children, excluding any visual disturbing elements. It has been provided with sound and visual stimulations, to attract their interest (applauses in cases of correct answers, different colours to differentiate right or wrong answers), etc. There are many different types of Android devices, with very heterogeneous features regarding their screen size, resolution and O.S. version, etc., available today. The application has been developed trying to cover most of them. Minimum screen resolution is seven inches. This tool doesn’t seem to be very useful for smaller screens, for its inner features. Nevertheless, it has been developed for smaller devices as well, like smartphones, not intended to be a tool for teaching reading and writing skills (even it could be possible in some cases), but in a test and training context for teachers, parents or guardians who do the teaching work with tablet devices. Another requirement, as stated before, in order to be able to run the application, it would be the minimum O.S. version, below that (very obsolete versions) the application would become impracticable. Hope this project to be used to fulfill, by means of technology, one area of teaching with great improvement opportunities.
Resumo:
Malicious software (malware) have significantly increased in terms of number and effectiveness during the past years. Until 2006, such software were mostly used to disrupt network infrastructures or to show coders’ skills. Nowadays, malware constitute a very important source of economical profit, and are very difficult to detect. Thousands of novel variants are released every day, and modern obfuscation techniques are used to ensure that signature-based anti-malware systems are not able to detect such threats. This tendency has also appeared on mobile devices, with Android being the most targeted platform. To counteract this phenomenon, a lot of approaches have been developed by the scientific community that attempt to increase the resilience of anti-malware systems. Most of these approaches rely on machine learning, and have become very popular also in commercial applications. However, attackers are now knowledgeable about these systems, and have started preparing their countermeasures. This has lead to an arms race between attackers and developers. Novel systems are progressively built to tackle the attacks that get more and more sophisticated. For this reason, a necessity grows for the developers to anticipate the attackers’ moves. This means that defense systems should be built proactively, i.e., by introducing some security design principles in their development. The main goal of this work is showing that such proactive approach can be employed on a number of case studies. To do so, I adopted a global methodology that can be divided in two steps. First, understanding what are the vulnerabilities of current state-of-the-art systems (this anticipates the attacker’s moves). Then, developing novel systems that are robust to these attacks, or suggesting research guidelines with which current systems can be improved. This work presents two main case studies, concerning the detection of PDF and Android malware. The idea is showing that a proactive approach can be applied both on the X86 and mobile world. The contributions provided on this two case studies are multifolded. With respect to PDF files, I first develop novel attacks that can empirically and optimally evade current state-of-the-art detectors. Then, I propose possible solutions with which it is possible to increase the robustness of such detectors against known and novel attacks. With respect to the Android case study, I first show how current signature-based tools and academically developed systems are weak against empirical obfuscation attacks, which can be easily employed without particular knowledge of the targeted systems. Then, I examine a possible strategy to build a machine learning detector that is robust against both empirical obfuscation and optimal attacks. Finally, I will show how proactive approaches can be also employed to develop systems that are not aimed at detecting malware, such as mobile fingerprinting systems. In particular, I propose a methodology to build a powerful mobile fingerprinting system, and examine possible attacks with which users might be able to evade it, thus preserving their privacy. To provide the aforementioned contributions, I co-developed (with the cooperation of the researchers at PRALab and Ruhr-Universität Bochum) various systems: a library to perform optimal attacks against machine learning systems (AdversariaLib), a framework for automatically obfuscating Android applications, a system to the robust detection of Javascript malware inside PDF files (LuxOR), a robust machine learning system to the detection of Android malware, and a system to fingerprint mobile devices. I also contributed to develop Android PRAGuard, a dataset containing a lot of empirical obfuscation attacks against the Android platform. Finally, I entirely developed Slayer NEO, an evolution of a previous system to the detection of PDF malware. The results attained by using the aforementioned tools show that it is possible to proactively build systems that predict possible evasion attacks. This suggests that a proactive approach is crucial to build systems that provide concrete security against general and evasion attacks.
Resumo:
Este documento es una guía para el desarrollo de una aplicación para dispositivos móviles en Android. Dicha aplicación combina las técnicas de visión por computador para calibrar la cámara del dispositivo y localizar un elemento en el espacio en base a esos los parámetros calculados en la calibración. El diseño de la aplicación incluye las decisiones sobre la forma en que se reciben los inputs de la aplicación, que patrones se utilizan en la calibración y en la localización y como se muestran los resultados finales al usuario. También incluye un diagrama de flujo de información que representa el tránsito de esta entre los diferentes módulos. La implementación comienza con la configuración de un entorno para desarrollar aplicaciones con parte nativa en Android, después comenta el código de la aplicación paso por paso incluyendo comentarios sobre los archivos adicionales necesarios para la compilación y finalmente detalla los archivos dedicados a la interfaz. Los experimentos incluyen una breve descripción sobre cómo interpretar los resultados seguidos de una serie de imágenes tomadas de la aplicación con diferentes localizaciones del patrón. En la entrega se incluye también un video. En el capítulo de resultados y conclusiones podemos encontrar observaciones sobre el desarrollo de la práctica, opiniones sobre su utilidad, y posibles mejoras.---ABSTRACT---This document is a guide that describes the development of and application for mobile devices in Android OS. The application combines computer vision techniques to calibrate the device camera and locate an element in the real world based on the parameters of the calibration The design of the application includes the decisions over the way that the application receives its input data, the patterns used in the calibration and localization and how the results are shown to the user. It also includes a flow chart that describes how the information travels along the application modules. The development begins with the steps necessary to configure the environment to develop native Android applications, then it explains the code step by step, including commentaries on the additional files necessary to build the application and details the files of the user interface. The experiments chapter explains the way the results are shown in the experiments before showing samples of different pattern localizations. There is also a video attached. In the conclusions chapter we can find observations on the development of the TFG, opinions about its usefulness, and possibilities of improvement in the future.
Resumo:
Trabalho Final de Mestrado para obtenção do Grau de Mestre em Engenharia de Redes de Comunicação e Multimédia
Resumo:
Smartphones get increasingly popular where more and more smartphone platforms emerge. Special attention was gained by the open source platform Android which was presented by the Open Handset Alliance (OHA) hosting members like Google, Motorola, and HTC. Android uses a Linux kernel and a stripped-down userland with a custom Java VM set on top. The resulting system joins the advantages of both environments, while third-parties are intended to develop only Java applications at the moment. In this work, we present the benefit of using native applications in Android. Android includes a fully functional Linux, and using it for heavy computational tasks when developing applications can bring in substantional performance increase. We present how to develop native applications and software components, as well as how to let Linux applications and components communicate with Java programs. Additionally, we present performance measurements of native and Java applications executing identical tasks. The results show that native C applications can be up to 30 times as fast as an identical algorithm running in Dalvik VM. Java applications can become a speed-up of up to 10 times if utilizing JNI.