Google also believes that Kotlin is a great match for the existing Android ecosystem due to its 100% compatibility with the Java programming language also making both languages fully interoperable, i.e., both languages can be mixed into the existing codebase without any developer effort via some automatically applied translation conventions (e.g. property getters and setters are automatic created). It is also possible to customize how the translation is performed through Kotlin annotations. Another reason pointed was the demand by the Android community that has been said to “love the Kotlin language” ( CLERON , 2017; ANDROID , 2019b), a statement reinforced by the StackOverflow 2018 developer survey that shown Kotlin as the second most loved programming language ( STACKOVERFLOW , 2018). This phenomenon is also observed in the growth of questions related to Kotlin regarding Androiddevelopment in the most popular question and answer site for software developers, the StackOverflow. Table 1 shows year over year growth.
• No runtime performance penalty — Although not necessarily a benefit, we can safely switch from Java to Scala without compromising the runtime performance. Intuitively, we are inclined to think functional programming as inefficient. However, one empirical study was conducted to verify this hypothesis and concluded that the performance of Scala versus Java was very similar [ PSG12 ]. Following the same premises, another study arrived to the same conclusions, with the testing being performed on an Android environment [ DN13 ]. When analysing the development process of an Android application, we can argue that it is quite similar to the development process of Web Application Frameworks. This happens because both share the same core pattern Model-View-Controller (MVC) [ KP88b ]. This is a well known and proven pattern since it decouples the Model and the View from the Controller, respecting the single responsibility principle [ Mar03 ].
This paper presented necessary guidance and health recommendations for mobile users who have installed the android applications. The proposed system model generates food tips and recommendations for different categories of people who are underweight, overweight or obese due to a computation of their body mass indices. It specifies certain exercise regimen types that are appropriate for these different kinds of people. Further expansion to allow for versatility and ubiquity is to implement the Personal Health Monitor app on other mobile platforms apart from android. This project was designed to run on android because of its fast penetration into the market currently, as well as its open source development.
Dex2jar is a tool for converting Android’s .dex files (Dalvik bytecode) into .jar files (Java bytecode), enabling the access to the .class files within the application. This tool is also distributed with others such as jar2dex that provides a way to reconvert the files into .apk, d2j-asm-verify to verify the integrity and that the files are valid APK files and d2j-apk-sign to sign the .apk with a new pair of keys. The development of this tool started by 2010 and entered in maintenance mode by 2015 which means it does not support many of the most recent features of Java language. Although the results are acceptable most of the times, when used on APK that utilize newer Java features, or have edge cases it may fail or produce incorrect results, making these unusable for further instrumentation and recompilation.
The evolution of mobile devices and their computing capabilities allow the development of complex applications that often require a mechanism for data persistence. Being an emerging area there are few options for data persistence frameworks applicable to Android platform. The objective of this work is to develop an object relational mapping framework that is capable of performing data persistence operations, thus allowing the developer to stick more to the development of the application. As a result we developed a framework that performs persistence operations on SQLite database. Differentiating itself from other existing frameworks for simplicity in use and export and import data functionality.
Droid Scan was developed by Trans-code Design, a software development company in Erie County, NY (Droid Scan, 2012). It is a mobile app that turns your phone or tablet into a portable document scanner. With Droid Scan you can transform images captured with your camera into professional multi-page PDF documents in just a few clicks. This app could be helpful for taking photos of whiteboards, handouts, or even the menu of your favorite takeout place. Droid Scan Lite is a free app that allows you to save files as .jpegs; the expanded Pro version, which is not free, gives you more file formats and better scans quality.
In 2005, Google decided to invest in mobile devices and acquired Android, Inc.. After that, they started a rail making efforts to form the Open Handset Alliance (OHA) aiming to build a better mobile phone and in 2007 Android was announced. The first smart-phone based on Android was launched on 2008. Since then, Google has been the member of OHA that has contributed the most to develop Android. Google hosts the source code and documentation since the very beginning and launched a Software Development Kit helping developers around the globe to make apps easily even without having a device. Google also organizes annual conferences to developers to talk about new features allowing developers to interact and share knowledge. On the same line, Google has provided some of the most used apps on Android, apps like Gmail, Chrome, Maps or even Youtube were developed by Google.
II. O VERVIEW OF A NDROID A RCHITECTURE Android is open source software for mobile development developed by Google. The Android architecture as shown Figure2 can be divided into five layers. The first layer from the bottom is the kernel, which is based on the Linux 2.6 kernel. It is used as hardware abstraction layer. The reason Google are using Linux is because it provides memory management, process management, security model, networking, a lot of core operating system infrastructure that are robust and have been proven over time. The next level up is a native or basic library, which is written in C and C++. The next level is the Android runtime. The main component in the Android runtime is the Dalvik virtual machine. It was designed specifically for Android to meet the need of running in an embedded environment where you have limited battery, limited memory, limited CPU. The Dalvik virtual machine runs something called DEX files. Those files are bytes codes that are results of converting at java .classes and .jar files. Those files when are converted to .dex files become much more efficient bytes code that can run very well on small processors. They use memory very efficiency. The next level up from that are the core libraries. They are written in java programming language. It contains all of the collection classes, utilities, I/O, etc. The upper level is the application framework. This is also writing in java programming language. It provides abstractions of the underlying native libraries and Dalvik capabilities to application. Each Android applications run on its Dalvik virtual machine .
The use of smartphones worldwide is growing very fast and also the malicious attacks have increased. The mobile security applications development keeps the pace with this trend. The paper presents the vulnerabilities of mobile applications. The Android applications and de- vices are analyzed through the security perspective. The usage of restricted API is also pre- sented. The paper also focuses on how users can prevent these malicious attacks and propose some prevention measures, including the architecture of a mobile security system for Android devices.
The cost to develop an operating system for specific hardware for a small company can be very large, because a task of this magnitude would require a considerable number of people, resources and time involved. Given all these difficulties, one can envision the potential that a ready platform as Android offers, with its variety of resources, market consolidation, being free, open source, free distribution and maintenance done by developers of various reputed companies like Google, Sony, Motorola and Samsung, that have joined forces to work on an operating system for mobile devices default to all. The creation of this platform is proving to be good for business and for consumers, seen the growth of number of users and companies that have joined the platform. Taking into account the growing evolution and spread of VoIP technology (Voice over IP), the growth of corporate telephony market worldwide, along with commercial and technological potential a consolidated platform like Android, this paper proposes a customization of the platform Android so that the system is suitable to be used in a desk phone for enterprise environments, with the replacement of the original system of calls by a system fully VoIP. As a result of this work, was elaborated a tutorial that aims to demonstrate step-by-step the entire process of developing the customization of the platform, from the configuration of the development environment, to the execution of the source code for customized devices.
Iniciou-se o trabalho pelo desenvolvimento da applet, adotando uma metodologia baseada em Test-Driven Development, devido ao papel que este componente iria ter na arquitetura. Este componente realiza as tarefas de armazenamento dos dados sensíveis do cliente, como cartões bancários e cupões, bem como todas as operações de criptografia relacionadas com o protocolo especificado pelo consórcio MobiPag. Para a realização das tarefas atrás enunciadas, foi preciso desenvolver para a applet, um contentor dinâmico de objetos para o armazenamento dos cartões e cupões, e foi ainda necessário desenvolver um analisador de certificados X.509 com codificação DER. Como medida de segurança extra, foi pensado e elaborado um mecanismo para a realização das operações relativas à preparação do SIM antes de ser distribuído ao público, que garantirá que a informação transferida durante esta fase, como chaves privadas e certificados, nunca mais é alterada. Em certos pontos da arquitetura foram analisadas várias hipóteses, cada uma com as suas vantagens, fornecendo assim alternativas, caso alguma das hipóteses não fosse viável.
A ferramenta utilizada para o desenvolvimento foi o Eclipse por se tratar de uma plataforma de grande utilização e por possuir os plug-in’s que facilitarão o desenvolvimento da aplicação como o AndroidDevelopment Tools (ADT), pois com ele é possível integrar o emulador do Android e Web Tools Platform (WTP), necessário para executar requisições http.
According to a survey conducted at the Universidade Tecnológica Federal do Paraná, Campus Pato Branco, teachers of technical-integrated course in surveying found that although the materials worked in class can be posted in the virtual learning environment, there is the difficulty of access to this information through mobile devices. In this context the idea to develop an application to facilitate student access to these contents. By conducting a survey to identify what already exists Mobile application, an official application Moodle has been identified, but it was inefficient for students and contained many defects. Thus this paper proposes an Android application that integrates a virtual learning environment, where Moodle. Thereby enabling an improvement in access to information by students, who are currently living in a totally connected world. The application was developed using the App Inventor, software created by MIT which facilitates the development of programs for Android. To assist the performance of work, the approach used, with incremental life cycle. Was obtained finally the application as proposed, which allows students to download files available in the Moodle server to their mobile phones.
Another problem is that, since mobile applications are different from a traditional desktop application [ ZSG16 ], it is not possible to apply testing techniques and methodologies that were developed for desktop applications in mobile applications without modifying them. These mobile applications need a new and effective approach that is capable of ensuring that the application is of high quality and reliable [ ZSG16 ]. This can be achieved with the development of new tools and techniques or with the modification of tools and techniques from traditional software test- ing [ MDE12 ].Since mobile applications are considered event-driven most tool available for event driven software (EDS) are still applicable to test mobile applicatinos. However, the tools will have to be adapted so they can perform cost effective tests in the Android environment [ AFT11 ].
Definidos os requisitos para o módulo de navegação do Drivian Tasks, tornou-se necessário explorar as várias alternativas de implementação possíveis, e quais as vantagens e limitações associadas a cada uma. Nesse sentido, foram contempladas duas possíveis abordagens: uma primeira com recurso a um Software Development Kit (SDK) de navegação, sem acesso ao código fonte (black box), e cujas responsabilidades de acompanhar o utilizador, dar instruções apropriadas, calcular rotas, disponibilizar mapas e gerir os mapas no dispositivo móvel, são inteiramente delegadas a esse mesmo SDK; e uma segunda abordagem que corresponde a uma implementação de raiz de todo o sistema de navegação, apenas com a responsabilidade de cálculo de rotas com informações adicionais (trânsito, condições de via, entre outras) delegada a uma API externa.
Mobile applications offer all kinds of service at a one-click distance, from bank transfers, online purchases, or even managing your email. These services are not centralized in a single application which leads to stores being flooded daily with new applications, which most often come to provide existing services. This growing number of applications available daily in stores is consequent to rapid development and technological stacks that make the development of mo- bile applications more accessible. Besides these technological factors, the relatively low cost of development has a high impact on these numbers.
Nowadays, mobile applications are essential in people’s daily lives, especially in mobile appli- cations for Android platforms. This is due to the fact that this system holds a large majority of the mobile applications market that are available through the Google Play Store and the large number of devices that use Android as an operating system. With this in mind, as well as the influence that some of these applications have had on people’s lives, it becomes increasingly clear how important it is to ensure the quality of the applications available to users, including the official platform, the Google Play Store.
A plataforma de software Android tem aquecido não somente a indústria de hardwares que suportam essa plataforma, mas também alavancado o desenvolvimento de aplicativos para diversos seguimentos de negócios, fomentando a sua popularidade por aplicativos sem ou de baixo custos, por uma plataforma livre oferecendo ricas interfaces para os usuários e uma nova forma de interação possibilitados pelos recursos de hardwares como relata a Open Handset Alliance (2012) que mantém aliança com o Google no esforço e aprimoramento do Android.
Para o desenvolvimento protótipo em um curto período de tempo aproximadamente 4 meses e foi dividido as atividades para um grupo de blogueiros de uma comunidade gamer que faço parte (KORJENIOSKI). As tarefas foram divididas em quatro competências: arte gráfica, som, enredo e programação. Após ter criado as tarefas foi publicado em um wiki para centralizar o trabalho e acompanhar o andamento do projeto. Cada um dos convidados escolheu a atividade que tinha maior afinidade e competência para executar. Infelizmente no grupo não existia ninguém com conhecimento sobre a plataforma Android então acabei fazendo todo o trabalho sozinho e sem um retorno sobre a qualidade do código. Desenvolver em uma plataforma nova sem um parceiro para trocar ideias por vezes leva o programador a nem sempre escolher o melhor caminho para resolver um problema. Outra dificuldade que tive para efetuar os testes e apresentar os resultados foi que eu era o único do grupo com um celular rodando Android. Então a solução para apresentar o que havia sido criado foi gravar vídeos com o jogo rodando e narrando os problemas e resultados obtidos e enviar para o Youtube para o grupo tivesse um retorno de como o jogo estava se comportando. Quando comecei a gravar os vídeos teve um resultado positivo. O grupo começou a ficar mais animado com o desenvolvimento, acredito que foi o fato de ver algo concreto do seu trabalho e esforço em ação. A principal dificuldade durante o desenvolvimento do jogo foi a falta de um padrão conhecido de desenvolvimento para jogo no Android já que o uso de uma Activity representa toda a funcionalidade da tela do software, então foi durante o desenvolvimento que a organização dos packages e criação das classes foram surgindo. Para o debug do programa foi usado, inicialmente, o emulador do Android no Windows, foi critico já que a renderização é lenta a solução foi fazer os testes direto no celular para ter o resultado esperado.