Posts

Showing posts from March, 2014

Reverse Engineering Android apk

Image
Reverse Engineering Android apk Table of Contents Background Apktool dex2jar + JD-GUI 1 Background Here is my puzzle at this moment, my superior gave me a task to make Bluetooth Low Energy product which includes Android APP part, but there are no virtual designer and product manager, just myself as a software engineer. So, my first step is to found out a similar product and refer its design. Then, I need to decompile that app, some reverse engineering skills of Android app and java are necessary. I guess following two methods are enough to decompile an Android app. 2 Apktool ApkTool is a tool for reverse engineering Android apps, what it is pretty good at is to decode resources to nearly original form and rebuild them after some modification. But the java code part is decompiled into the smali format, which is not a good format to read and understand. 3 dex2jar + JD-GUI Apktool can not generate readable java source code, actually, there are no re

Mobile APP development team composition

Image
Android APP development team composition Table of Contents Android APP team Exploration Stage Team Structure Acceleration Stage Team Structure Innovation Stage Team Structure 1 Android APP team Recently I have a job to develop an Android APP, this one is not a toy app anymore, it is a serious product. In the former time, When the superior dispatch an app task to me, most of the time, I did not worry about the user interface or UI design, I just need to finish the job by my way, just ignore the ugly interface, because most of the jobs are just test or research oriented. But this time is different, I need to develop a serious product. How can I make a product by myself? So I try to figure out the quality of the good team to make an awesome app. Then I found the following link to answer my question: http://www.slideshare.net/Mutual_Mobile/maturing-your-mobile-development-team This article provided three stages of Team structure, which can be a reference to ru

Light_BLE - a practical APP tool to develop Bluetooth LE device

Image
Light BLE APP Table of Contents What is Light BLE APP? The Advantage of this APP Why I make above improvement? Source Code 1 What is Light BLE APP? It is an enhanced android app to communicate with Bluetooth LE peripheral. This app may be useful in Bluetooth Low Energy peripheral equipment development. It is based on an example in Android's SDK source code sample which located in sdk/samples/android-19/connectivity/BluetoothLeGatt/ , but that example sucks(yeah, Light BLE  sucks too, but much better than that sample). 2 The Advantage of this APP Following is what I improved based on that sample. Change the LocalService and Activity communication mechanism from broadcast intent into callback hooks. Add RSSI signal detects. Add write characteristic dialog(still need to improve). 3 Why I make above improvement? Broadcast Intents was not dependable, I guess that's the reason that I missed a lot of messages. So I studied the communicat

How to write Android Service?

Image
How to write Android Service? Table of Contents Two kinds of Services in Android Local Service Remote Service Broadcast 1 Two kinds of Services in Android When we wanna make an Android app, we should put the time-consuming jobs into a service, actually, there are two kinds of services in Android, Local Service, and Remote Service. The difference between them is that whether they are running in the same process as the app, the local Services are running in the same process as the app, while the remote Services are running in the separate process, and I just need to add the following attribute to the AndroidManifest declaration to announce a remote service, it is a local Service without this attribute. android:process=":remote" After We build the Service, We need to communicate with this object, send a message to Service is obvious, I just need to bind to that Service. But how to receive announcement and messages from the Service, the mechanisms to do