We applaud new and interesting open source developments that look to find novel ways to solve a problem—things like the Xposed framework and OpenPDroid. It is these sort of projects that exemplify what open source is, and why we at XDA embrace it. It is also for that very same reason why we’re excited about a new open source project, HALO from the creators of the Paranoid Android ROM.
HALO, as previously discussed, brings notifications (conceptually derived from Facebook’s Chat Heads feature) from applications into a floating window and allows you to interact with that application. While this is similar to the Samsung Multi-window functionality, it differs in one key point: It is now open source! Any source-based ROM is able to make use of what the Paranoid Android team has done and bring this functionality to their users with minimal changes. From PA’s Google+ post, the developer of the ROM needs to look at these two commits:
HALO extends Android as it is based on the AOSP source, while also granting app developers the ability to bring the visual aspect to their application. Below is a nice overview of the project and if you like what you see, definitely head on over to the github commits and get involved.
June 5, 2013 By: Samantha
In addition to developer support, the processor is probably the only other major device specification that your average technological ‘nerd’ cares about. With every release of a major smartphone, comes a marketing campaign that more often than not, boasts about processing power. So what do we really know about about a device’s processor and its ‘mysterious technological rhythms‘?
Well for those who may have heard about CPU Spy, it’s a simple little app that displays data about your device’s SoC—more specifically, the frequencies it runs at and the duration they run for. Given that it is a useful tool for diagnosis of a wide range of issues such as battery or overheating, XDA Recognized Developer Mirko ddd, with the permission of the original developer, decided to give the app a total makeover in the form of CPU Spy Reborn.
Preserving its core function of CPU frequency data, CPU Spy Reborn also comes packed with a couple of other useful perks. The CPU Spy was given a major aesthetic overhaul, now presenting itself with a pleasant grey and orange Holo-themed UI. Mirko_ddd took the initiative to add layout support for Tablets, particularly those with 7-inch screens. He also added cards and grid layout displaying frequency data. There’s also a new Action bar, showing the total duration the CPU has been running, with the option of refreshing and resetting.
And you know what’s the greatest part of this? It’s Open Source, meaning that you guys can observe and change the code as much as you please without getting a nice bitter letter from the original developer for illegally reverse engineering a closed source app (if they found out).
CPU Spy Reborn is compatible with any device running Android version 4.0 and is free and ad-free from the Play store. So if this sounds interesting to you, make sure to check out the application thread for more information.
May 30, 2013 By: Conan Troutman
For most of us, Google I/O is probably beginning to feel like a distant memory—perhaps less so for those lucky enough to be browsing on your shiny new Chromebook Pixels. We’re all aware by now of the big stories from this years conference, but among all that was something that was of great interest to us here on the Portal, which you might not have noticed.
One of the sessions put on by Google was titled Voiding Your Warranty: Hacking Glass, the purpose of which was to show those in the Glass Explorer program how to root the device and run their own applications. During the session, the capabilities of Glass were demoed by showing not only how to gain root access but how to run a full desktop operating system, in this case Ubuntu. One of the tools used to achieve this was an application called The Complete Linux Installer that we featured here on the Portal just under a year ago. Considering that the application was written by our very own Recognized Developer and Forum Moderator zacthespack, we decided to track him down and get his opinion on the use of his application to help hack Glass and a few other things as well.
Well Zac, why don’t you start by telling us a little bit about yourself?
“Hello, I’m Zachary Powell (zacthespack on XDA) and I am a second year BcS Computer Games student at the University of Essex (UK). I have been on XDA since 2009, becoming a Recognised Developer in 2012 and a Forum Moderator earlier this year. My passion for both Android and FOSS has encouraged me to work on multiple projects, including Slap OS on Android, my newest joint-venture: XML Games, and of course; LinuxonAndroid. My other interest include computer games and computer game design. Virtual Worlds are a particular interest of mine because I enjoy seeing what a community can create within them.”
It must have been a bit of a shock to see your app being used by Googlers at IO. What was your initial reaction?
“Yes, it was quite a shock. It had never crossed my mind that the employees of Google could be using my app, never mind it being featured at their biggest event. I see it as a serious milestone in the project’s life to be included amongst Google’s work.”
Do you think that running a full desktop OS on a device such as Glass will become commonplace, or will users prefer to stick with a lightweight and minimal interface?
“I think that both have their places. Clearly for day-to-day use a desktop operating system isn’t practical, but it does have it’s uses – particularly when you are talking about using a command line and command line tools. Clearly, with the limited size of the glass’ screen, the use of a desktop GUI is prevented; it’s certainly not going to be able to run a web browser. However, when resolutions improve, this could become more possible. As it is, the screen is large enough for a command line and I like the idea of being able to develop and compile code from a HUD on the move.
I do feel that in general it won’t become commonplace for the average user to run a full desktop OS on the glass because for most people, a desktop operating system is a word processor and an web browser. There is no general need for them to have access to developmental tools. The minimal, easy to use system is preferred by the average user.
However for advance users and developers who want to tinker with their glass and unlock the full power of the device, running a desktop OS on the glass would make a big difference.”
What are your thoughts on Glass in general?
“I believe that the Glass is a fantastic product, and is something that I am itching to get my hands on. Obviously the idea of a HUD is nothing new, but I think that Google have taken the idea in such a way that the result is second-to-none. There is no other device like this and although there is still a lot of room for improvement, by the time Google release to the general public I think it will be a well polished and usable device. The fact it runs Android is great because you are able to run a far better range of apps, including my own. This also makes the process of ensuring apps are Glass compatible much easier. I am looking forward to getting my own Glass and discovering it’s full potential.”
What originally motivated you to begin the Linux On Android Project and is the project still going?
“The project originated from a desire to get Linux running on my HTC Desire S. The idea and method used in the project is nothing new, but we seek to make it a universally accessible platform (as long as you are rooted). After developing the project and creating a tutorial in XDA, there was a clear demand for the project as people started asking me to help them get it running on their devices. It was at this point that we started creating the universal method, and from there the project really took off.
Yes, we are very much still going. We are working on new improvements constantly, including new Linux Distros and making the app more universally accessible in terms of the languages it has been translated in to and the number of devices it can now run on.”
Considering our recent focus on helping those new to app development, could you tell us a little bit about your methodology, process, and perhaps any tips you might have for aspiring developers?
“Trial and error is definitely the key here. There is a great range of Open Source apps available which you can study the source code for and learn from. This is something I strongly recommend anyone to do. Although the phrase is “don’t fix something that isn’t broken”, I can’t help myself but to continue improving the app and adding new features.
My biggest tip would be to never stop learning. Always look to better your knowledge. The Android platform is always changing, and you have to change with it.”
Tell us a little more about the new projects you mentioned earlier.
“SlapOS on Android is a branch of LinuxonAndroid using our Ubuntu install as a base to then install the SlapOS software, allowing your android device to integrate with your SlapOS cloud, with this every Android device can become a cloud node!
XML games is a new project A friend of mine and myself have just set up and launched on kickstarter. XML Games aims to allow the players themselves to easily and quickly create new game levels using a predefined set of XML tags. Coupled with an XML web platform, players can view and share each other’s levels online, unlocking the possibility of endless new and unique gameplay!
Using XML to design levels allows for us as the developers to make the levels and games completely cross platform. This opens players to an ever growing range of different levels all of which can be designed by anyone on any platform.
Once you have made your levels, they can be shared on the XML Games website community. Allowing anyone to browse and download to play. The hope here is that users can head onto their PC, code their own levels with the help of our handy guide, and then head onto their phone, and download their own level!
We plan to start out on Android creating a few open source games, but with enough funding hope to expand onto other platforms and more games!”
Given the Linux theme here I have to ask, what is your personal distro of choice?
“Primarily I use Ubuntu for work as I like its stability, however I do enjoy playing with Arch Linux because of its customisability.”
If you’d like to follow up on anything mentioned by Zac, check out the links below.
Every so often, an OEM will do things right. Well, nearly right anyway—right enough at least for their stock ROMS to only need some minor tweaks before they are almost perfect. More often than not though, these tweaks are things that can be tricky to implement for the average user—a user who will often find himself looking to install a custom ROM that is pretty close to stock with these desired tweaks added in. Usually that means downloading a pretty large file and then following the obligatory backup/flash/restore process that many of us now have down to a fine art. It shouldn’t have to be this way though, and luckily it isn’t. You just might not know it yet.
You may or may not have heard of the Xposed Framework, the brainchild of XDA Recognized Developer rovo89. If you’re already familiar with this particular mod, there’s really no need for me to tell you how awesome it is. You’re excused and can go play outside. If you aren’t already familiar with the framework, take a seat and listen up. While the Xposed Framework certainly isn’t a new thing, it doesn’t get nearly as much recognition as it deserves, and it’s time to do something about that.
According to the developer, Xposed works as follows:
“Some technical details:
I extended the /system/bin/app_process executable to load a JAR file on startup. The classes of this file will sit in every process (including the one for system services) and can act with their powers. And even more: I have implemented something that allows developers to replace any method in any class (may it be in the framework, systemui or a custom app). This makes Xposed very powerful. You can change parameters for the method call, modify the return value or skip the call to the method completely – it’s all up to you! Also replacing or adding resources is easy.”
What that means is that modifications (known as Xposed modules) can be made to any app or element of the OS itself by simply coding the desired change, packing it into its own APK, and installing to the device. The Xposed Framework takes care making sure it gets to where it needs to go and stays there. This eliminates the need to decompile the specific item you’re modifying or creating different versions for different ROMs and devices. There may be a need to alter an Xposed module after a major change in Android itself, for example 4.1 to 4.2, but let’s face it: That’s a fairly infrequent occurrence. No files on the device itself are modified, and this means that in the event something does go wrong, returning the device to a stable state is no more complicated than flashing a zip to disable the framework. That’s right, no more lengthy and storage consuming nandroid backup process every time something goes wrong.
Installation is incredibly quick and painless, considering the scope of this utility. Simply grab the Xposed Installer from the forum thread and sideload to your device, open up the app once it’s installed and click on “Install/Update,” reboot the device, and you’re good to go. No seriously, it’s that simple.
Installing each individual module is as easy as sideloading the APK, installing, activating it via the Xposed application and rebooting. Some mods will offer a user interface depending on how much functionality they are capable of, others just have one specific purpose and need no attention at all.
So what kind of modifications are we talking about here? Well, if you can think of tweak then chances are it can be packed into an Xposed module. Think of the added little extras that make your favourite custom ROM so appealing. Those are the sort of things that Xposed was created for.
A perfect example is Smart Alarm Icon, created by XDA Forum Member Mantelinho. This mod will configure the alarm icon in your status bar to only be displayed at a predetermined period before the alarm is due to sound. Let’s say you have your alarm set Monday through Friday. You can leave the alarm set all week but won’t have to see that little clock shaped reminder of Monday morning hanging around in your status bar over the weekend.
There a multitude of mods out there for various purposes, and you can bet that we’ll be highlighting as many as we can in the future. In the meantime, you can check out a repository for various modifications that was put together by Developer Admin pulser_g2. There is also a development tutorial aimed at getting people to create their own modules and making this the single most powerful tool for customisation there is.
Just when you thought this whole thing couldn’t possibly get any more awesome, it’s all open source. Be sure to check out the original forum thread on the Xposed Framework for more information.
May 6, 2013 By: Conan Troutman
Most of the tutorials out there to get you started in developing Android applications will recommend using Eclipse as an IDE (integrated development environment) and not without good reason. It’s a solid and dependable program that is intuitive and particularly friendly to those with minimal experience. You could almost be forgiven for thinking it was the only viable option given its popularity, but this is far from the truth and there are alternatives.
XDA Senior Member ramdroid77 has taken to the newly launched App Development Forums to talk about his choice of IDE, IntelliJ IDEA. After running into some issues with Eclipse failing to load certain projects on both Windows and Linux, he sought out an alternative and settled with IDEA. One of the reasons for his preference is as follows:
“One big difference (and it seems many people have troubles with it) is IDEA’s handling of library projects. Unfortunately I think this is done in a very logical way, as each “project” is handled as a model. Means you create a project (“My app”), add a module for your main app project, and add new modules for each library project you would add. For each modules you can set the dependencies and say on which modules it depends.”
IDEA itself supports Windows, OSX and Linux, another notable feature is the inclusion of an inbuilt Android UI designer. It also happens to be open source and is available from the JetBrains site as a free download (there is also a paid version with increased functionality). This definitely looks like it might be worth a spin for all of you app developers out there. Be sure to head over to the relevant forum thread and share your experiences as well.
Working with a team of developers can be great because you have someone to talk to when you hit the coding wall. If you don’t have that luxury, you can still learn how other programmers do things in order to sharpen your skills. That’s what XDA Recognized Contributor coolsandie had in mind when he started his list of all open source Android apps.
The list is huge, spanning several posts in the original thread, so there are many examples to learn from. All of the apps listed are available in the Play Store, which should equate to them being less buggy than random code snippets found in the wild. You can install them to see what features they include, then follow the list’s links to the source code to see how the original developers did everything.
Just reading through the source code is a great way to improve your own work and decrease the time you spend developing, but this is also a great resource to turn to when faced with a very specific problem. Want to know how to detect movement? Check out Pedometer which keeps tracks of how many steps you take each day. Need an example of how to add Widgets as part of your App? You’ll have no problem finding one in this list.
Here at XDA, you’ve probably seen us talk about collaboration. The dictionary defines collaborating as “to work with another or others on a joint project.” We take collaboration seriously, so much so that we actually frown when we see members of the community not take it as seriously. What makes us even more upset is when manufacturers don’t take it seriously, though that rant is for another day.
There have been numerous instances of OEMs that have claimed to be “developer-friendly,” but whose actions spoke louder than their words. On the other hand, there are only a few instances of OEMs actually having their actions match their words, with one of those being Sony over the last 12-18 months and another being a relatively new entry to the Android world, Chinese manufacturer Oppo. If you recall we’ve spent some time discussing Oppo’s recent wins in the Android space, not the least of which is their GPLv2-required release of kernel source for the Find 5. On the surface this is not that noteworthy given it should already be done by default, however with Chinese manufacturers that is not a given. Given the negative track record of Chinese manufacturers adhering to licensing, Oppo is doing something extraordinarily rare by signaling a desire to position themselves in the Western market. Unlike other Chinese companies (Huawei comes to mind), Oppo is showing they have some understanding of, or are attempting to learn, what it takes to succeed.
As OEM Relations Manager for XDA, it is my job to contact OEMs and build a dialog with them. This usually starts with establishing a relationship where XDA, with its 5 million users and tremendous independent developers, and the respective OEM can begin to discuss ways to collaborate (there’s that word again) on win/win opportunities. Sometimes it is met with open arms, as has been the case with Oppo. When approached with the idea to work together with XDA in growing development, we immediately began to discuss ways to facilitate collaboration (!) to bring about a good relationship with the developer community. We also knew that in order to make any collaboration a win/win for both parties, there would have to be value for the OEM.
After those initial discussions, I spoke with some veteran CyanogenMod maintainers (and members of the now-defunct Team Hacksung) XDA Elite Recognized Developer Entropy512, and Recognized Developers XpLodWILD and nebkat, about their interest in taking on a new device and bringing CM to it. All three were definitely interested, and I began working together with them and Oppo to make it happen. After a few weeks, CM10.1 was brought to Nightly status by the team.
Oppo was ecstatic, and so recently I reached out to XDA Recognized Developers, and Paranoid Android developers, molesarecoming and aaronpoweruser, about their interest in such a project. As was expected, their answer was in the affirmative. And after just a few days, aaronpoweruser posted on G+ that he was close to having an alpha build of PA soon.
All of this hasn’t come easily though, given the state of Oppo’s kernel source. The kernel source that was released was not fully GPLv2 compliant as it was released late (though better than some other companies we could name), had different config files (debug worked, release didn’t), and the kernel source has not been updated even after they’ve made kernel updates on recent firmware updates. With all that being said, the teams have done a great job bringing their respective projects to where they are today. And with language and cultural barriers between our developers and theirs being what they are, Oppo does appear to be trying to overcome those issues.
We know you look forward to seeing the great things that are bound to come out of this collaboration. And to the other OEMs out there, take this as a suggestion: It doesn’t hurt to embrace the developer community, and only makes your stock rise in the eyes of that community. When that happens, the word will spread, and consumers (who incidentally are highly influenced by what members of that developer community have to say about your products) will follow with their currency. It’s a cycle which can, and should, be repeated. If you’re interested, contact me and XDA.
April 29, 2013 By: Conan Troutman
It used to be the case that whenever you wanted to use ADB or FastBoot with a device, you were required to install a specific driver for each device. For anyone regularly flashing several devices or developers who test on numerous different phones and tablets, this could prove to be something of an inconvenience, especially when setting up for the first time and having to hunt around in a dingy corner of an OEM website looking for the correct driver. Thankfully, things are somewhat simpler nowadays thanks to several different solutions to this old issue.
You may remember us previously talking about the Universal Naked Driver by XDA Senior Member 1wayjonny. This is a Windows based tool (compatible with XP, Vista, 7 and 8) that allows you to make use of ADB, Fastboot, and (for ASUS devices) APX on over 250 different devices with minimal effort. Check out the link above and the forum thread for more information on this one.
Continuing on from the success of the Universal Naked Driver, Koush has taken the device/vendor ids collected within the UND thread and used them to create an alternative solution, which claims to work on all Android phones and all versions of Windows, presumably XP and above. You can find Koush’s Universal ADB Driver and the source for it from the G+ post linked to above.
Last but certainly not least is a project entitled Casual Android Driver Installer, or CADI for short. This is the brainchild of XDA Senior Member jrloper, and like the two already mentioned options, it attempts to alleviate the frustration of device-specific drivers. The difference with CADI though is that it is fully integrated into the CASUAL by XDA Elite Recognized Developer AdamOutler and takes a somewhat different approach to the problem. It uses elements of an open source USB device driver installer called libwdi by Pete Batard and essentially determines which devices are connected via USB before generating drivers on the fly and automatically taking care of the installation process. That’s a pretty good example of three open source projects coming together in a glorious trinity of non-proprietary loveliness if ever I saw one.
So if you are still plagued by the problem of individual drivers for each of your devices, it’s definitely in your best interests to look into one, or indeed all of these options. Let us know your preferred method of driver avoidance in the comments below.
April 27, 2013 By: Samantha
If you have been to the new App Development forums, you may have come across a project called ‘Playview for CardsUI’. Started by XDA Recognized Developer GadgetCheck, it’s an open source project that aims to replicate the aesthetic philosophy and design of the new Google Play store, and in particular, the card-like lists.
“How do you think we can achieve a list view like the new Play store…Can anyone help me out?” GadgetCheck, 10th April, 2013
Within days, GadgetCheck, XDA Senior Member Androguide.fr, and other XDA community members managed to achieve strides of progress in this proposal. Presented with a simple question and an initial prototype the XDA community, with a bit of coding and open-source libraries, further refined the product into what is known today as PlayView for CardsUI. Every aspect of PlayView’s development is documented in the forum thread, with points of major progress uploaded to Github for the community to check out and contribute to. The libraries are open-sourced, allowing anyone to incorporate the UI into their works.
What’s so great about this project is that it epitomizes what XDA-Developers is about: social contribution from the community towards development, helping one another out, and sharing and enjoying the end result. It’s something we all can see in CyanogenMod, FreeXperia, AOKP, and the many other teams and developers who dedicate their time and effort to get Android development to where it is in the present day.
PlayView for CardsUI is still a work in progress, so if you would like to check it or or chip in, make sure to head over to the development thread for more details.
XDA Developers, being the hub of mobile development today, is always glad to see open sourced projects released to the community. Apps, ports, tweaks, and mods are just some of the open sourced projects showcased by XDA members. This time around, it’s SidePanel by XDA Forum Member sukso96100.
Like previous sidebar applications such as Sidebar and Glovebox, SidePanel is another multitasking app that allow users to bring upon a dock of apps to select and open. However because the two former apps are closed source, there is inevitably a certain limit of contributions from the community, meaning less flexibility and customization to suite users’ unique and individual needs and wants. SidePanel being open sourced means that all members of the XDA and Android community will be able to have their own take on the SidePanel experience.
The user interface of SidePanel is presented with a pleasant Holo interface and allow users to change the aesthetic theme of the app dock, the width, height, and position of the touch detection area as well as other customization options. As for the actual dock itself, it displays the recent apps of the device and vertically scrolls up and down. sukso96100 also included a helpful tutorial guiding users through the customization and functionality of the app.
Compatible with Android versions 2.2 and up, SidePanel is still in beta and is available for free on the Play store, with its source code found at its Github. So if you’re interested, head over to the original thread for more details.
February 13, 2013 By: jerdog
We have always strongly encouraged developers from the various OEMs to take an active role in the open source community. At times we have seen involvement, but often that doesn’t happen for many different reasons. One of those reasons boils down to an OEM placing their developers in virtual walled gardens, away from “prying eyes” and the rest of the open source community.
At the risk of belaboring the point too much, Sony Mobile continues to raise the bar for the rest of the OEMs out there. They actively encourage their developers to participate in the open source community, and as a result, their developers answer the call and step forward with great tools. One such tool, by Sony Mobile Developer pal.szasz, adds incredible value to mobile app developers out there. And to top it off, it is fully open source. XAppDbg is a tool which you can include in your existing app to allow you to test out certain features and changes without having to rebuild each time. As Pal explains it, the big advantage this brings is when working on the UI for your app, you can try out different settings and immediately see the effects inside the running application.
XAppDbg consists of the server, which runs on the phone, and a client, which runs on the computer. Utilizing Java reflection to scan for fields and methods in the code, XAppDbg opens up the public fields, properties and commands to the client, allowing you to enter in specific arguments to adjust during runtime. Because XAppDbg is written in J2SE, you can use the tool with desktop Java applications as well as Android mobile applications.
Pal created a thread on XDA, as well as a more detailed write up along with instructions and code examples over on Sony’s Developer World and made his source freely available. Make sure to visit both, and show support for his endeavors.