Blended Android tidbits

This time I don’t have a full article about one specific topic but rather few useful tips. These are not really bound together, you don’t need to read from the top to the bottom but you can skip to what interests you most. Permissions – Application lifecycle consideration I don’t want to explain once again how … Continue reading Blended Android tidbits

AppLaunchChecker – a first quick analysis

With the release of the Android Support Library revision 23.3.0, a new utility class has been introduced: AppLaunchChecker. Its aim is very simple: To help track how your app has been launched by the user in the past. This can be useful if you want to confirm that a user has launched your app through its front … Continue reading AppLaunchChecker – a first quick analysis

Request for simplifying padding and margins declarations

I’ve recently created a new feature request for the AOSP code related to padding and margin attributes used in layout declarations. Quite often, while setting a padding or a margin, it’s done using the same value for left and right (or start and end) and for top and bottom: that’s the case for example for list row … Continue reading Request for simplifying padding and margins declarations

Tips on updating to Retrofit 2

Retrofit 2.0.0 has been finally released and while the official documentation, articles or blog posts give you all the details about this new version, I’ve seen several questions on StackOverflow about how to update the code just to do the most common tasks like logging, adding request parameters or using JSON objects. So, in this blog post, I … Continue reading Tips on updating to Retrofit 2

MissingTranslation issue for release builds

Using the default Lint configuration, while building the release version of our application, we could face the MissingTranslation error: Error:(3) Error: “pick_color_array” is not translated in “ru” (Russian) [MissingTranslation] <string-array name=”pick_color_array”> … 1 errors, 0 warnings Error:Execution failed for task ‘:android-rgb-tool:lintVitalRelease’. > Lint found fatal errors while assembling a release target. This happens when more than one … Continue reading MissingTranslation issue for release builds

Gradle bits for beginners

The following tips are meant especially for who is quite new to Android Studio and Android application development in general. Gradle Version Any project in Android Studio can set to use the Gradle Wrapper or the local Gradle distribution. The latter is actually stored within Android Studio and it gets updated along with the IDE. There … Continue reading Gradle bits for beginners

Android Reverse Engineering 101 – Part 5

In our introduction journey in the Android reverse engineering world, so far we’ve seen what is an APK and its format, how we can extract useful information about an application using aapt, which is provided by the Android SDK, how we can convert the DEX bytecode to a more readable and easily editable format and how we can … Continue reading Android Reverse Engineering 101 – Part 5

Android Reverse Engineering 101 – Part 4

In this introduction series to Android application reverse engineering, after having talked about the APK format, aapt and dex2jar, the next thing we’re going to turn our attention to is Apktool. As we have seen, resources in an APK are compressed and stored in binary format and neither aapt nor dex2jar can help us to view and edit them: the former is … Continue reading Android Reverse Engineering 101 – Part 4

Android Reverse Engineering 101 – Part 3

In the first two articles of the series, I wrote about the APK format and the aapt tool. In this post I will focus on dex2jar, a tool to work with Android  .dex and Java .class files: there are few mirrors, but you can point here for the official website. The core feature of this tool is, as you would … Continue reading Android Reverse Engineering 101 – Part 3