Sarah
Sarah

Reputation: 2893

How to tell which libraries my android application is using?

I can't seem to find an answer to my question anywhere else, so maybe it isn't as straight forward as I would expect...

Is there any way to find out which libraries my Android application is using? It's likely using Delvik VM, but how do I know if I am using the Media Framework library, or WebKit or anything else along those lines?

Sounds like an unnecessary question, but I need to write a paper on an application I've developed and This information would be helpful.

Thanks in advance!

Upvotes: 1

Views: 1364

Answers (2)

Raghunandan
Raghunandan

Reputation: 133560

If your using external libraries those will be included in you /libs folder. So you would know what libraries you have included.

If you enable proguard then the tool removes unused classes, fields and methods. The ProGuard tool shrinks, optimizes, and obfuscates your code by removing unused code and renaming classes, fields, and methods with semantically obscure names. The result is a smaller sized .apk file that is more difficult to reverse engineer.So not all classes in library is used. Those unused classes are removed if proguard is enabled.

You application has android.jar as a referenced library. Its not included in the .apk file. You can unzip the .apk and see the contents.

Those android.* classes are not part of your APK file and therefore are not affected by ProGuard. The real classes are already in your process at runtime, put there by the firmware..

enter image description here

So you can go to your AndroidSDK. Goto platforms. Open a folder say android- 16(for api version 16). You would see android.jar. You can unzip the jar file and look at the files under it.

Open the android folder and you would be database, media, webkit and so on.

You should have a look at this link. http://developer.android.com/about/versions/index.html

Developers have full access to the same framework APIs used by the core applications.

We develop applications on the top most layer. Say you want to store data to database , then your app would be using sqlite to store data.

SQLite - a powerful and lightweight relational database engine available to all applications.

Its the same for other libraries. So it depends on your app.

Upvotes: 1

rekire
rekire

Reputation: 47945

In general that depends on your app. Android contains program code from many sources. As you already know e.g. Webkit, but also many differnt classes from Apache projects or json.org.

I would say just document that you use the Android SDK. An expert should have an idea what is included.

Upvotes: 0

Related Questions