A year after writing the article about checking Tizen, developers of the PVS-Studio static analyzer checked the quality of the operating system code again, this time demonstrating the abilities of their product to detect errors and potential security vulnerabilities in the Android code.
Despite the fact that the Android code is of high quality and is well tested, and its development includes at least the use of Coverity static analyzer, PVS-Studio still managed to find a lot of interesting defects. Some errors are classified as CWE (Common Weakness Enumeration), which for a certain coincidence of circumstances can be used as vulnerability (CVE). That is why, if you want to protect your code from security vulnerabilities, you should find as many bugs as described in CWE and eliminate them.
According to developers, PVS-Studio is a tool for static application security testing (SAST) and can detect many potential vulnerabilities before they caused harm. This article describes examples of errors by the following categories:
- Pointless comparisons
- Null pointer dereference
- Private data is not cleared in memory
- Unspecified/implementation-defined behavior
- Incorrect memory control
- Array index out of bounds
- Broken loops
and so on.
Thus, 490 CWE per 1855000 lines of code have been detected or more than 1 vulnerability per 4000 lines.
Development of large complex projects is impossible without the use of programming methodologies and tools to help monitor the quality of the code. First of all, this is a literate coding standard, code reviews, unit tests, static and dynamic code analyzers. All this helps to detect defects in code at the earliest stages of development. Use additional programs and methods to control the quality of your code and make your product secure!
Source - https://www.viva64.com/en/b/0579/
In this article I want to tell you about the experience of developing one unpretentious game for Android, which has repeatedly paid off at the development stage!
PrehistoryWe started developing the game in the 10th grade. Before that, we had no experience in developing and promoting mobile games. There were only basic knowledge of Java and a little experience of creating websites. And that's all!
In this article, I'll talk about some of the ideas on which high-level parts of Android are built, about several of its predecessors and about the basic mechanisms of security.
In this article, I'll talk about the components that make up applications for Android, and about the ideas behind this architecture.
How Android works, part 1
How Android works, Part 3
In this series of articles, I'll talk about the internal Android device - about the boot process, about the contents of the file system, about Binder and Android Runtime, about what they consist of, how the applications are installed, running, interacting with each other, about the Android Framework, and on how Android provides security.
According to the StatCounter statistics, the number of mobile web users has surpassed the number of desktop web users. This goes to show how many people use their mobile devices to browse the internet. According to Gartner prediction, the revenues from mobile app will surge to $77 billion in 2017. The question remains, how will you make your app stand out from millions of other mobile apps? The answer is by following the best mobile app development practices. In this article, you will learn about seven best mobile app development practices.
Know Your Target Audience
The first question that you need to ask yourself is who will use this app? Understand how your user will interact with your app and which feature they want in your app. If you want your mobile app to be a roaring success then you should know your audience like a palm of your hands. The better you know your audience, the better change you have to give them what they are looking for. Not only does this makes your job a whole lot easier but it also pave the way for delivering a perfect user experience for your app users.
Have a Design Strategy
Having a design strategy is critical for success especially when you are developing a cross platform mobile application. When you are designing a cross platform app, multiple activities are underway simultaneously. Therefore, if you do not have a sound strategy then there are bright chances that you mess up your mobile app. List down key functionality of your mobile app as well as future components on paper so that you can easily minimize the risk of emerging problems at different stages of app development cycle. Involving users into the design process will provide you with valuable feedback that will take you closer to designing a perfect mobile app for your users.
Develop Most Important Features First
Many app developers take the adventurous route of creating the most difficult feature of the app first. As a result, they fail to launch the app before the deadline and their mobile app exceeds budget. The best way to go about it is to focus on essential and core features and develop them first then move on to create features that are more complex. You will have to lay a solid foundation with core features and then take it from there. App developers can work on additional features and launch them in next releases or as a plug in when necessary but should focus on critical features of an app.
Make App Security Your Priority
According to Now Secure mobile security report, 35% of mobile communication, both voice and data are not encrypted. Moreover, most of the mobile communication takes place through wireless medium. This makes it a soft target for hackers and more vulnerable than other wired communication devices. Make mobile app security your priority, identify and fix any vulnerability in your mobile app before releasing the mobile app for users. Keep the user confidential and private information safe so that users are comfortable in using your mobile app.
Test, Test, Test
Despite putting a lot of emphasis on testing the mobile app before putting it up for downloads, a survey revealed that, less than 50% of companies test their mobile app for security while 33% do not even bother to test their mobile app, which is quite alarming. It is better to test your mobile app at each stage of the app development cycle but if you cannot do it, at least test the app thoroughly at the end and make sure that there are no glitches left before uploading your mobile application on app store. One bad user experience can prove to be very costly so it is better to pass your mobile app through comprehensive testing processes to prevent such issues.
Establish a Feedback Mechanism
Last but certainly not the least, is to incorporate feedback into your mobile application. Provide user with a medium through which they can give their feedback and share their opinion with you. Users can prove to be a vital resource if you allow them to give feedback as they experience crashes, bugs and errors that you might have missed. This makes it easy for app developers to make improvements in the future. Ask users about which features they want to see and add them in the future releases to satisfy them.
At the end of the day, it usually comes down to the user experience and satisfaction that will decide the fate of your app. If you know about any other mobile app development best practice that can make a big difference to your mobile app development efforts, then feel free to share it with us in comments section below.
We can say that mobile and tablet applications have replaced the TV because in the research, it is found that people today spend minimum three hours every day on their mobile devices. Android development India team experts are leaving no room for bugs in such applications that could disturb the audience while watching their shows. More entertainment applications are coming with their own web series and movies and thus, people spend lesser time on TV nowadays.
The days are gone when we called television the “first screen” for entertainment. Lots of entertaining applications are now made by android developers and the idiot box has been replaced by phones and tablets officially as the trend is on rise for the past two years.
Google Company has announced new 7-inch tablet for developers, but now it is the part of Tango project. If Asus Nexus is generally familiar tablet, then Tablet Development Kit is a true vundervafli with price $1024, which cannot be bought by everyone, it is not because of the price.
I am engaged in developmental work for Android for some time, and I gradually came to the conclusion that I have been lacking many things as a developer. At the beginning of 2010, I lacked only C++ exceptions and RTTI. Without them, any non-trivial C++ code could not be ported to Android, and it required almost complete rewriting. It was a very important limitation, which worried me a lot. Fortunately, Android is an open source, so I started working on that, keeping in mind old saying (if you need something, do it yourself). I got surprised, because to make support for C++ with exceptions and RTTI turned out pretty easy. It only took about a week of work. Then the website was made on which were posted the NDKs for Windows, Linux and Mac OS X, as well as a patch and the instructions for assembly.
The problem was urgent, so the project was very popular. During the first month I received many letters with the questions, requests for additional functionality and simple thanks. One of the most frequently asked question was: “Will Google include these changes to the mainline?”. I honestly replied that I do not know, but there is hope, because David Turner (system architect of Android) is very interested in my patches, and he promised to pay attention to them.
Why is Android laggy? This topic has generated a heated discussion all over the Web by both technical and nontechnical android users. Therefore, this insightful post will illuminate many of the complex issues with smooth Android rendering, where the author Andrew Munn does technical analyses of the real reasons that make Android laggy.
Why is Android laggy, while iOS, Windows Phone 7, QNX and WebOS are so smooth in the work?
This post will attempt to answer that question.