Showing posts from March, 2016

App Tune-up Kit

A central theme to all embedded development has been getting better performance and thus increasing battery life.  This is entirely an exercise on how to get more out of the same hardware by doing things smarter with better design. To that end, let's talk about how to rate and compare your app with what others are doing in the wild.  On Android, this is a very easy process thanks to Qualcomm's App Tune-up Kit .  From an Android device, you can quickly grab details about any app currently installed on your device and learn about how costly it is to run that app.  Watch how when the CPU and GPU are working hard crunching numbers the battery life correlates and goes down.  Most importantly, take note of apps that run over the network.  Networking is very battery intensive, especially when not using wifi and going over the cell's 3g or 4g connection. One of the gravest sins an app can do is a process called sending heartbeats.  Heartbeats are short status notifications used t

Setting up git

If you've never used git before; it's probably best to start with github , it's a free service so long as you are doing an open source project.  If you have the ability to run your own server and require keeping your project closed source and not in the hands of a third party, then it's perfectly reasonable to run a local git server. As the process for setting up github is very simple , it seems reasonable to do a quick blog post about how to use git in a day to day type of setting.  First let's cover a few things about the theory of git. Git is a versioning control system.  It works by allowing remote computers to work on the current version of everything in a project.  Git keeps the entire history and change logs inside a subfolder of the project hidden from normal view called ".git".  Git works by comparing the contents of the directory on the remote server with the directory locally to see what has changed and what needs to be added.  This local git

Setting up Software for development and testing

We're going to get into some fun and practical knowledge for this post.  As mentioned in my first blog post, this site will use C / C++.  To that end, we'll start with examining the tools we'll use and getting the IDE (Integrated Development Environment) setup.  In order to try and avoid confusion, I will present a survey of IDE choices and setups that are popular and give advantages and disadvantages of each along with when to use them.  If you feel confused anywhere within this post, just skip to the Android Studio at the end, using it and Gradle is not only the official way to do things, it's also what I'll use in all my projects that target Android on this blog. Choosing an IDE Up until recently, May of 2015 when Google announced Android Studio Native Development Kit support; the old official way of using the Native Development Kit involved using an IDE known as Eclipse.  While I'll be mentioning the official ways, but there are non-official IDEs that ar