I am new in android programming.I have created an application (in eclipse using android).it has many features and one of them is tess-two.some of them increases my application size.(like tess-two that increase about 15 MB).so I want to make it as api and if user needs it , download it.tess-two is a project that improrted to eclipse and used ndk and checked islibrary (properties -> android) and used in my main project(so in my project it is in bin folder).
I am sorry that my question is complicated or I asked it badly.
A recommended option is to put tess-two in a separate app. This new app has no user interface. When installed, it exposes an API you (or potentially other apps) can use. This API could be, depending on your needs, a ContentProvider or a service\activity that handles an intent you create.
When the user of your main app asks for a feature that uses tess-two you will check if your API is available (i.e the intent is resolved or the content provider is available) and if not, direct the user to the play store.
An alternative option is to dynamically download code into a new classloader. It's both complicated and forbidden by Play Store policy.
Related
I don't collect installed apps from a device, but I use variety of libraries. I think it is probably from one of the libraries I use, If so, how can I find the library that collects such data.
The cause is most likely from the library you used. Here is the steps to find out which library collects installed apps on device. This applies if you developed the application via Java/Kotlin.
Decompile the application - You can use: http://www.javadecompilers.com/apk
Search the specific code for collecting installed apps on device one by one from the whole decompiled folder. Like getInstalledApplications, getInstalledPackages, ApplicationInfo.FLAG_SYSTEM, for more info How to get a list of installed android applications and pick one to run. You can use Visual Studio Code to search specific text from a whole folder.
You can now find the library that you uses the code.
I am new to android ECO System. I am just writing a code and created .aar file which other developer can use this.
1) Is it possible to make sure only one application can be developed and uploaded to app store using this aar file.if I provide to another developer.
2) Other than this developer, it should not be used by others. For this probably i can go with API Key Concept. this
This question might seem very poor, but still I want to know the answer. Because for the first time I am using Flurry.
Whenever I go to Flurry dashboard and try to download the SDK, it asks me to select and application. The app which I select has some category such as game-arcade, app-lifestyle etc.
As per my knowledge an SDK is universal for all types of applications/ games. It just differs with application Ids.
If I am correct why they ask me to select an application for downloading SDK> Does Flurry SDK different for each application?
If SDK is universal, Flurry must change its SDK download option. It is very annoying and confusing.
No, flurry does not provide a new SDK for each app, they are asking you to select an app so that they can provide you with the correct API key.
Since the page you are redirected to contains a piece of code which you can copy paste into your app they just make sure that the correct API key is there.
I am writing a SDK which defines a remote Service and provides a AIDL interface for 3rd party developers. For my testing, I install the SDK as an Android app (XYZService.apk), although its just a background service(which does not start until a Client binds to it) and there are no Activities defined. I also install my test client app as the second app (TestClient.apk). TestClient app has Activities and on launch, it binds to the XYZService and starts it.
But I am confused how should I package this SDK for 3rd party developers. Lets say 3rd party developer writes a new client ClientFoo.apk. How do they provide XYZService.apk to their users who download ClientFoo.apk via Google Play. Do I have to make XYZService.apk availavle via Goolge Play ? is there any way 3rd party developer can package XYZService along with their .apk file ?
Can I provide a JAR file to 3rd party developers. Basically, providing a JAR for my remote service will be an idea solution for me.
thanks a lot for your answers. I am new to Android development.
Do I have to make XYZService.apk availavle via Goolge Play ?
You have to distribute it somehow. APK files do not appear on users' devices by magic. Whether you use Google Play or some other distribution mechanism is up to you.
is there any way 3rd party developer can package XYZService along with their .apk file ?
Yes, by getting rid of the APK, getting rid of the AIDL, and implementing your SDK as a JAR or Android library project. Distributing reusable code as a JAR has been in use in Java-based development for around 15 years.
You use AIDL and an APK if you are distributing your own app, that the user wants independently of anything else, and that you additionally want to allow third parties to access a service exposed by your app. If you do not have such an app, or do not want users to have to install a separate app, you should be giving a JAR or Android library project, so your code is baked into the third parties' apps.
Can I provide a JAR file to 3rd party developers
You can implement your SDK as a JAR, so long as it does not require resources -- then, you will need to distribute it as an Android library project.
I have developed two separate applications 1) android 2.1 that takes user input / registers , shared pref and stuff and 2) Google Maps GPS on target Google APIs 7 .
Now, I would like to embed the second project in first . That is, after the user registers it will bring up Maps and suggestions and stuff. How can I use both the targets (Apis ) together in a single App?
You just have to use the Google APIs 7 target as it will also include the 2.1 one. The only difference is that it provides the Google Maps API library.
If you want to join both project together you will have to do it manually. I mean, copy the sources and resouces of the first project and cppy them into the project that has Google APIs 7 as target and copy. Then fix manually what you have to fix. In conclusion: in order to join them, you will have to do some stuff manually.
There's another option, though. You can export your the first project as an JAR library and then include it into the second project's built path. The problem with this is that you will not be able to modify the source code of the 'library' one.