It’s fair to say that unless you’ve spent some time digging around inside APK files and making some heavy duty modifications to apps or the Android OS itself, you probably haven’t come face-to-face with a .smali file in its natural environment. They are a common component in many of the most popular Android tweaks and hacks out there such as adding toggles, extending the power menu, and adding CRT screen off animation.
The files themselves can often be found nestled inside APKs and become available for modification once that particular file is decompiled with a utility such as APKTool. Unfortunately, these smali files sometimes have a tendency to squirrel themselves away inside the classes.dex of a JAR file and make themselves a little more awkward and time consuming to reach and manipulate. Following on from his recent guide to ADB commands, XDA Senior Member iamareebjamal has put together a one-click tool that will allow you to decompile the classes.dex from any APK or JAR file with ease.
Simply place the relevant file in the input folder, decompile, make any necessary changes to the newly available files, recompile, and check the output folder for your modified version. It’s as simple as that. Obviously there are a few prerequisites to this, namely some kind of personal computing device running Windows, Java (ideally in software and liquid form), the relevant files and tools (notepad++, an archive manager etc), and some idea of what you’d actually like to achieve as the end result. If you have all of those at your disposal, this could prove to be a great little time saver and well worth a visit to the original thread.
April 14, 2013 By: Jimmy McGee
Recently, XDA Developer TV has been talking about becoming a Hacker. What we mean by hacker is not the basement dwelling anarchist types, we mean the expert coding kinds. We talked about how to become a hacker, and last week we talked about ranking hacker schools. This week, we are talking about how to get accepted into a hacker school.
In this episode, XDA Developer TV Producer Jayce interviews developers and people from the hacking school world to answer these questions. Interviews include Co-Founder of Mobile Makers Don Bora and Co-Founder at Hack Reactor Douglas Calhoun. Check out this video!
April 7, 2013 By: Jimmy McGee
Last week, XDA Developer TV Producer Jayce interviewed Co-Founder of App Academy Kush Patel and Co-Founder of Mobile Makers Don Bora to talk about intense learning curriculum known as Hacker School. There were quite a few questions about what and where you could find such schools.
In this episode, Jayce names a few schools and talks about what they cover. Programming languages from Ruby on Rails to Java are covered. Jayce gives some advice on how to find out if the school is any good and what one might expect to pay for these schools. Check out this video!
April 30, 2012 By: Adam Outler
Everyone has experienced the desire to program at one point or another. However, there are generally four limiting factors: Time Constraints, Study Material, Mental Blocks, and Attention Span. So clear your schedule, clear your mind, and self-medicate your ADD with a nice cup of your favorite coffee because here’s the material you need to learn how to program.
The hardest part of learning to program is overcoming a mental block. First, there is no programming deity out there who grants code-literacy to anyone. Learning to code is the same as learning any language—there are nouns, verbs, and sentences that come together in a certain way in order to make sense to the computer. Once you’ve written down a complete thought, the program works properly.
Second, even Java experts with PhDs in computer science think of Java as having huge black-boxes with inputs and outputs. Just as with any language, the higher your expertise means the more obscure language structures you can use. Anyone can learn basic language structures though.
The third mental block is to get motivated and “Just do it.” The tools are free. The resources are available. Anyone who wants to write a program can do it and publish their work. So you need to just jump right into your IDE and start making something.
Tools: How to Build an Android App Part 1: Setting up Eclipse and the Android SDK – Setting up Eclipse and the Android SDK will give you the basic tools you need to get started making an Android app. As with any project, you should start by gathering up your tools and learning to use them first.
Skills: “The Java Tutorials” – The Java Tutorials is essentially an http E-Book that is laid out in the same format as many certifications and online courses. Many people have stated that they want to “Sit-down and learn Java.” The Java Tutorials are a great way to do precisely this. This is tailored to writing generic Java applications, and not specifically Android’s implementation of Java. Learning this material will give you a strong knowledge base for programming Java applications.
Materials: Android “Package Index” – The Android Package Index is a reference for all of the Packages, Classes, and APIs provided by Google. Once you learn how to program in Java, you need to learn about the individual building blocks of an application. Each of these packages function as the nouns and verbs in your writing. The documentation show the appropriate time and place to use these words as well as what you get out of them. This package index serves as your dictionary.
Architecture: “Android Design” – The Android Design page is a great launchpad for ideas in your Android application. This page is examples of what Google would like to see. Each page shows design implementations recommended by Google.
The Human Aspect: Our Android hacking forum is the perfect place to ask questions, get answers, and see the works of other developers.
So, we’ve covered all the basics needed to get started creating your own Android applications. There are almost infinite resources available on the Internet. Please share your favourite resources below.