Recently when trying to update my application I came across the message that I cannot do it unless native code libraries have x64 architecture. The app has a library that hasn't been updated in years, and despite it's working perfectly on all devices, I can't update it on Google Play unless I change the library, which would result in practically another development from the beginning because it is the core of the app.
This is a complete disregard for the developer who spent hours and hours developing his Android application.
Is there any way to get around this situation and update my app? Thanks in advance.
Does the library have 64 bit binaries, or is it open source? If so, you just need to grab the new binaries or compile from source. If not, then you just learned an important lesson- never rely on a 3rd party library that you can't control as a core component of your app. This is a lesson every developer learns eventually, managing dependencies is an important part of software engineering.
Related
I am currently a Computer Science student and have a group project that needs to create an app in android studio. However, over the course of years working on group projects I know many issues can occur from having user based error like it will run for one person but not for the other.
I'm trying to find a free and easy way of creating a remote server either on my computer or on a cloud platform that will host android studio where my group members and I are able to remote in to work on the projects without any hassle. so my question is are there any 3rd party software that does this kind of work? if not, most likely we would have to just deal with it and use github.
Update -
About two years ago, I started building a project with my twin brother that could help us code over the cloud. We began researching for ways to achieve this and began noticing projects like Google’s Stadia that were streaming GPU-intensive games over the internet.
After stumbling upon multiple technologies we began exploring and experimenting with the WebRTC project while scouring through proposals submitted on the IETF regularly.
We eventually zeroed in on streaming our dev tools to our browsers and began developing Neverinstall to help users conserve system resources.
We ran dev tools in a cloud-native environment for a better experience that did not hinder the local machine.We knew we immediately had to validate our project and the need for such a tool.
So, we shared it about 2 years ago to get some quick feedback from devs.
https://www.reddit.com/r/androiddev/comments/j0o51v/introducing_android_studio_on_the_cloud_request/
Beyond our wildest expectations, we received immense support from the developer community along with amazing suggestions and feedback that ultimately helped us evolve the platform into a full-fledged personal cloud computer. So as we grow, we look back at how the community helped us get where we are today, and we do not want to stop delivering.
One of the first dev tools that we started supporting when we built NI was Android Studio. It is a popular dev tool with a large user base and problems alike. We began by addressing one of the most common grievances with Android Studio – slowing computers – and moved to take the experience closer to native.
From launching Beta to releasing full-fledged support for AS, the developer community helped us understand what they need and how we can make NI conducive for Android development.
So, today we are excited to announce that Neverinstall now supports emulators on the platform out-of-the-box. Developers can now build, test, and deploy Android apps in record time, eliminating several hindrances such as slower Gradle build times, sluggish emulator performance, and incompatibility issues.
Try Android Studio on the browser
We would love to see you build your Android projects on our platform and give us suggestions on how we can make it better.
Is it possible to create a new iOS app with exsisting sources?
I am working with xamarin in Visual-Studio. I've got a project, an app that runs on Android devices. But can I make a new project for an iOS app with those existing sources? I have a Macbook that I can use to do this. I also have a PC with windows 10 on it. So the hardware/software requierments shouldn't be a problem.
Getting to the point..
Is it possible to transform the project from an Android app to an iOS app without writing any code extra? And how can I accomplish this, any tutorials that I can watch/read?
The code language is C#. The programs that I am using are Visual studio and the xamarin extention.
I've read something about Platform Abstraction and Divergent Implementation on the xamarin ducomentation page, but this couldn't fully answer my question.
Short answer: NO.
Long answer:
There are a quite a few cross platform developing tools out there. Xamarin, like the one you are using, or Cordova. They simplifies the development by "A LOT" but you can't just convert one app to another without writing 0 code. Some of the libraries in one platform do not exist in the other. So, the long answer is that cross platform shortens the development cycle as you do not need to start from scratch on other platform, that does not mean it can completely convert.
P.S. Youtube is your friend, but the difficulty of the transformation solely depends on the scope of your project, as they vary a lot.
I second the other answers.
Furthermore, I'd like to propose to have a look at Flutter.
Flutter is based on Dart language . The framework and your application get compiled from Dart to the Android and the iOS target platform.
Flutter is a product of Google and likely to get the base development environment for Fuchsia, a new OS from Google.
My own experiments with Xaramin ended up kind of frustrating. The development was slow, several times problems with Xamarin itself or plugins made me stop the effort.
At the other side, I created an app with Flutter quite fast. While Dart and Futures might seem at first quite different compared to other concepts/languages, after some time things turn out to be very natural and well designed.
While Flutter originally was based on Material design, Google added an iOS theme using CupertinoWidget.
A simply great feature is the enormous quick development turnaround time: The app under development very ofter adopts within just a second your source-code changes. Flutter/Dart hot reloads changed classes often instantly.
Android Studio is a great and free IDE for Flutter development. Plugins enhance to IDE with Flutter development tasks.
If you have android application written in Java you can use Migeran Analyzer to understand how much % of the code could be reused between android and iOS: https://analyzer.migeran.com/
Once you have the % you can use Intel Multi-OS Engine (free product) to create cross-platform application in Java: https://software.intel.com/en-us/multi-os-engine. It will have module with cross-platform shared code, android specific code module and iOS specific code module
I have to be able to play HLS stream on Android OS starting version 2.2. I have done a research of existing possibilities:
I can use some 3rd party stuff like Vitamio. It works, but the source is closed, performance is rather poor, their plug-in sends some user info somewhere to China and I don't want to bother our users by installing some 3rd party stuff... So that's not a good option from my perspective.
I can try to build some Android port of FFmpeg framework, there are at least three of them, but I haven't been able to build at least one so far. I think it needs more patience and Googling... However, in case of success, there is also a problem with licensing - not as serious as with Vitamio and I am willing to pay license fees to MPEG LA if necessary, but it is still under LGPA.
Finally I got an Idea to use MediaPlayer from ICS, which already supports HLS streaming. My plan was to build the Android Stagefright media engine from the latest sources to get all the native libraries and distribute them together with my application.
I have successfully built all the Android stuff; got all the native libraries I need, but now I have a problem to load them on Froyo. I have placed the libraries into the projects libs folder, but application refuses to load them. It loads the original system libraries instead - if they are present on the current version.
So my question is, if it is possible to use native libraries from higher Android version on old ones. If so, then what I am doing wrong. How can I force my application to load ICS native libraries from its libs folder? Is it even possible?
Any comments, suggestions, ideas are highly appreciated...
You may try some opensource video player, such as VLC or mplayer, which has Android version.
And you can use ICS libraries, buy you need to do many work to modify and compile them with your target Android version. I've used some code from ICS in some of my apps.
I want to modify the core applications like Settings.apk and install on my own android phone.I don't want to publish it on market. I have following doubts
Where can I get source code for core applications?
What are the things I need to do this?
Please tell me steps to do this.
You can get the source code here: https://android.googlesource.com
Keep in mind that the packages there might not be the ones on your phone as each vendor can provide a replacement of their own, the Camera for instance is almost never the google app.
You will also have to decide which version you want since each OS version has revisions that take advantage of newer API's etc.
As far as what you need pretty much the same thing you need to build android apps, eclipse, the sdk, tools etc. http://developer.android.com
You will of course have to remove the application from your phone before installing the new one since your signing certificate will not match. There can be difficulties when you swap out your own version so be sure to save the original.
I have 6 months experience with Android, developing simple UI-based applications. Now I want to write applications targeting the Android core Kernel. For example, I want to develop a framework which is not present in Android. To achieve that, we have to write the code for the Kernel. I don't know where and how to start Android Kernel programming.
If anybody knows the way to start it please help me.
xda-developersA very awesome and very active place for anything smart smart phone related.
kernelnewbies
Generally good resource for starting out learning linux kernel(Which is what the android is built off of)
Building Android KernelAndroid Kernel Source
Linux kernel Online guide to driver development among many other related topics.
Update
For android source code you can check out one of the following...
or this question
or source.android.com
I personally dig this chrome plugin for browsing android source code.
If you are talking about platform level programming,i.e. framework extensions, native libraries and services there are a few places to start.
The first one is the new and updated official open source project page. The portions about contributing and porting provide some basic information on the platform architecture and what you need to work with the platform. The next step is to understand the build system for the platform and framework. There are some limited info available on the net if you google for it. The best way is probably to study some of the makefile templates available in the open source project in the build folder. For info on how to add your own modules using Android.mk files it is a good thing to study make files for existing projects such as the ones available in external in the open source projects.
Once you have gotten as far as the above. That is you know the basics of platform level development and how to build your own modules for the platform the next step is to study the framework extension example available in the open source project. Check out the vendor/sample/PlatformLibrary folder (edit, as of 2.2 the vendor stuff has moved to the device folder) in the open source project and read the readme file, study the code, build it and make sure you understand it. If you don't then JNI, shared libraries, the platform security model and the core framework are areas that could help you out.
I guess that since you are talking about kernel programming you are also looking for ways to hook up new hardware with the platform and expose that functionality using your framework extensions to the applications. Hardware is basically added as a standard Linux driver so getting it to work under Linux is a good first step. How to hook it into the Android framework after that depends on what type of hardware it is. You could either use a native process to control it (compare the camera service or radio daemon in the current platform) or just spawn a thread in the application that uses your framework extension. For hardware that does not require that much attention plugging it in using an Android HAL library could also be an option.
I hope that provides some initial pointers on where to look. The official mailing lists are otherwise the main source of info about platform level development. Especially Android porting and Android platform.
You should also check out http://pdk.android.com. I just found this site recently and it is extremely useful. I wish I knew about it sooner. I'm not sure how dedicated Google is to updating the site because as BMB mentioned the vendor stuff was moved to the device folder in 2.2 but there have been no changes to the PDK site to reflect that. Also, some of the links don't work but I was able to find all the pages by doing a site search in Google.
The best and very first place to start would be Google’s documentation on android
https://source.android.com/docs/core/architecture/kernel
Then kernel building
https://source.android.com/docs/setup/build/building-kernels
Xda isn’t so great for kernel creation but is good for kernel modification and backporting. Mostly what they do there is provide newer versions of android to older phones rom modification and changing the battery animation in the boot.img
Google also goes over the development of new things for an existing kernel.
It’s best to start at the begining,
Personally I started at xda and went backwards which took WAY longer and just complicated my setup process.