the Java sources for the Android framework are available at source.android.com. Can I download and feed them to Eclipse so that I can step into framework methods while debugging? Better yet, does anyone know of an Eclipse plug-in that would get them from Android Git automatically as needed?
EDIT: during debugging, I can step through the framework code; I can see local variables by their declared names, and line numbers as well. It seems like the debug info is already there - only the source file is missing. While I can open it in parallel and watch the execution unfold, the question of version matching remains. Of many versions of the class file in Git, how do I pick one that matches whatever is running on the device (or emulator)? This is more of a Git navigation question - how do I pick up the very version of the file that went into Android release, say, 2.2?
EDIT much later: now sources come prepackaged with Android SDK. This question is somewhat obsolete.
This article nicely explains how to accomplish this: http://android.opensourceror.org/2010/01/18/android-source/
Related
I want to target Android from Unity. I'll be teaching a class so want a fast and easy deployment of the SDK without messing with 30 students' different laptop setups.
Is it possible to download just the Android SDK for a given OS without going via intermediaries (SDKManager, Studio etc)? Where can it be found and are any installation steps required?
EDIT: Thanks to a comment on this question and a close look at what Studio was doing when it installed suggests this link works for Windows:
https://dl.google.com/android/repository/platform-tools_r26.0.2-windows.zip
Is there somewhere I can find a definitive list of such links? And is it sufficient just to grab and unzip this archive? Unfortunately I've installed Studio now so my environment is a bit hosed from a testing perspective...
UPDATE: I've now discovered that the Android SDK itself seems to require a full JDK installation (not just JRE). For that rather tangential reason it seems unlikely I can use this in my specific context.
I'd still be interested to know whether there's a place to grab the latest SDK as a direct download, in case I decide to try to repack these dependencies for my students.
I'm using android-sdk-plugin to make Android apps with Scala using SBT. This generally works great - however when trying to import the project into IntelliJ IDEA 14.1 the imported project looks rather empty and does not recognize my source files as being part of the project.
The documentation says:
IntelliJ 14 now includes native support for importing projects from android-sdk-plugin. The process generally works well, however there are still several caveats:
The idea-sbt-plugin is still required to actually perform the build (no longer necessary as of IDEA 14.1)
Cloning and importing even the simplest example project results in an empty IDE not showing any sources at all:
I have installed both the Scala plug-in and the SBT plug-in (which I believe should no longer be required) as requested by the documentation.
What essential step am I missing?
Edit: I added the plug-in manually to project/plugins.sbt, then ran gen-android to get a project/build.scala containing object Build extends android.AutoBuild.
The essential step missing is the Android plug-in of IDEA. This might seem obvious but in contrast to plug-ins for other frameworks this one does not just provide extra goodies but is actually essential for anything Android.
Having the plug-in installed allows for selecting Android as a Project SDK (which not just selects an Android SDK but also a Java SDK to go with it).
I've been looking for a finished/working ImageView on Android that has pinch/zoom behavior. Although there are code-snippets all over S.O. for this I want something a little more finished that I can just build and use.
GitHub, which I've never used before, seems to have candidates. As far as I can tell GitHub is a free, public project-hosting, source-control system, but I'm only interested in downloading and trying out projects on it, which can be done by the "Download Zip" button on it.
I recently tried a project called PhotoView but after getting it all imported into my Eclipse development environment I found it had dependencies on a higher API level than I was using or targeting.
Is there any way to avoid that in the future? I.e., is there any place on GitHub where the developers typically lists technical requirements like programming language, target development environment, compiler or SDK versions, etc, so before bothering to download a GitHub project I can guess whether it's even buildable in my environment?
Edit: In my browser I can see a brief revision history but it looks like it only goes back a few changes so the manifest or other key files aren't always visible. Is the only way to see the project files to download the ZIP file, unpack it and look at it in my development environment on my local PC?
Thanks in advance.
Is there any way to avoid that in the future?
Browse the source code. For example, the manifest file (for the component or a demo app) should indicate the android:minSdkVersion.
is there any place on GitHub where the developers typically lists technical requirements like programming language, target development environment, compiler or SDK versions, etc, so before bothering to download a GitHub project I can guess whether it's even buildable in my environment?
Yes. It's called the project README, and you were already there, most likely, as it is the "home page" of the repository. The amount of documentation any given developer will write for any given component will vary.
You are also welcome to file issues against the project, asking for more documentation on this sort of thing, but if and when that issue will be acted upon will also vary.
readme file in root of the project, and Wikipages of that repositories could help you find out additional information about that repository. But at the end, contributors are responsible to prepare this kind of information and some of them don't care. So, you can look for Android manifest file of the project and check the content in GitHub website before download and unzip it.
I'm aware of the android-x86 project and as far as the end result (bootable live/install iso), I am looking to do the same thing. The difference is, I'm looking to do this with the ice cream sandwich branch from android master repo. Ice cream sandwich adds full support for x86 hardware and even sports a build target specifically for running the OS in virtualbox. So my question is, is anyone aware of any documentation for building and deploying to that target?
Just in case it's not clear, I'm not just using the android-x86 project because they haven't yet put up a build for anything later than android 3.
Okay so I was going to just delete my question because a few minutes after posting it, I found a tutorial! So, I figured I'd share this info here rather than just deleting, since that's a bit of a waste. Here is a link, plus an excerpt from the tutorial in case the link is ever lost:
http://ricston.com/blog/?p=1705
The second approach gives you direct access to the latest Android
code. However, it’s barely documented due to the fact that previously
you couldn’t build ‘out of the box’ an Android VDI (Virtual Disk
Image) with the AOSP. To build the Android VDI and install it in your
VM, follow these steps:
Get the Android source code from the AOSP site and follow the online
instructions to setup the environment.
When you are ready to build the project, execute the following command to set the environment variables for Make: “lunch vbox_x86-eng”.
Run “make installer_vdi” to
build the project. Make will build the project and produce a VDI named
“installer.vdi” located in “out/target/product/vbox_x86″. This VDI
contains Android plus its installer.
Create a Linux VM and add the
“installer.vdi” as an extra HD to the VM.
Start the VM and press “F12”
during bootup.
Select the HD which represents the “installer.vdi”.
Choose the first option, that is, “Android Install to /dev/sda from
/dev/sdb”.
When installation is complete, enter the command “reboot”.
After that, you should be able to launch Android from your VM.
I want to expand on this approach and end up producing a live CD rather than a VDI so I'm going to post this answer as a community wiki so it can be expanded by myself and others in the future.
Edit Nov 26/11
The above method of building right from the source alone is lacking features like proper keyboard and mouse support. Here is a link to an article (in Japanese but you can use google translate) of an individual who has compile the ICS sources with added in keyboard, mouse and network support. http://d.hatena.ne.jp/td2sk/20111125/1322192772
The precompiled VDI disk can be downloaded from here:
http://kie.nu/26G
I need to edit the original Android Apps from packages
in terms make my own distro/mod..
I want to make changes to the In Call screen, lock screen, contacts, calendar etc..
I understand that for doing this I will have to build everything from
source,
however I need to edit the source and to do so I need to open the OS provided apps as
eclipse projects,
When I did I saw that there are
missing imports which are hidden in the SDK (or missing)
hidden parameters within the classes..
I don't want to use reflection since the whole code is here and
available, but how do you build a platform development kit..
or PDK ?:)
Can any one help?
You start by reading the documentation.
EDIT:
If you are trying to download some single project from AOSP and compile it using the SDK, odds are very strong that it will not work, and that you will encounter problems like the ones you cite. You do not build Android by building individual apps; you build Android ("my own distro/mod") by building the entire firmware. Most AOSP applications are not designed to be compiled by the SDK, but need the whole firmware.
Please check Using eclipse to browse and edit AOSP. You can atleast edit your code using eclipse, but you will have to use AOSP build system to build your distro.
You might also check Debugging Android Java Framework services as that would help debug your changes.
Just open Eclipse,
then go to "window" +"preferences" +"android"
there you will get sdk location,then give the appropriate path of the android sdk for proper run...