Hi, I wanted to first understand what the priorities of the project are so i did not start yet.
Let's wait for the response of the author of the original jira. If he won't work on this I could try to make a PR on this. Have a nice day, David On Thu, Aug 12, 2021 at 11:53 AM Ryan Skraba <r...@skraba.com> wrote: > Thanks for the reference material! I linked the JIRA to this conversation > too. > > If AVRO-2863 has listed all the necessary changes (some minor code > changes in core, filtering out the .reflect package and removing the > use of `Thread.withInitial`) then I don't really see any objection to > doing option 1 as a quick win, creating an `avro-android-1.11.0.jar` > artifact for the next release. Have you already done some of this > work internally? I asked the original author if he'd be willing to > share his experiments -- with a bit of helpful expertise, I don't see > why this wouldn't be doable for the next major release. > > Ryan > > On Wed, Aug 11, 2021 at 5:49 PM David Gang <dg...@lightricks.com> wrote: > > > > Hi, > > > > If needed I could give here more detailed guidance. > > BR, > > > > On Wed, Aug 11, 2021 at 5:52 PM David Gang <dg...@lightricks.com> wrote: > >> > >> Hi, > >> > >> Thanks for the quick response. I think that the jira issue AVRO-2863 > summarizes the issues. > >> When talking about android support it is also important to decide which > android version you want to support. This is normally based on distribution > statistics: https://www.appbrain.com/stats/top-android-sdk-versions > >> There are two main problems. Classes which won't be implemented by > android platform (like ClassValue) and APIs which are just implemented by > later versions. > >> > >> So when deciding that android is a platform which should be supported > there are two options: > >> > >> 1. Not using classes which are not part of the android runtime (There > are very few) > >> 2. Create two flavors of the library. For example guava have guava > android and guava jre. > >> > >> The first option is easier to handle but i am not sure what the impact > on the product will be. The second option would (maybe) better for > performance but be more complicate to handle. > >> > >> Besides this it is also important to decide for an avro library version > what the minimal android version it supports. > >> > >> Regarding how to catch this stuff, this is a hard question. The only > idea I have is to introduce a regression test which should run in your CI > system. Mockito had the same problems and this is the solution they did: > https://github.com/mockito/mockito/issues/2341 The regression test could > be run on emulators with different versions (or maybe robolectrics) and so > errors could be catched. > >> > >> Hope this answers roughly the questions. > >> > >> Thanks, > >> > >> > >> > >> On Wed, Aug 11, 2021 at 5:28 PM Ryan Skraba <r...@skraba.com> wrote: > >>> > >>> Hello! I don't think it was a conscient choice in 1.9+ to "drift" > >>> away from android platform compatibility, and it's certainly worth the > >>> effort to make Avro usable for android developers. > >>> > >>> What would it take to bring the Java caode back into a compatible > >>> state? Would we need to separate out some of the core functionality? > >>> Are there tools for detecting android incompatibility that we could > >>> put into the build process? I'm not an android developer in the > >>> slightest so any guidance or contribution would be helpful. > >>> > >>> Ryan > >>> > >>> On Wed, Aug 11, 2021 at 4:14 PM David Gang <dg...@lightricks.com> > wrote: > >>> > > >>> > Hi, > >>> > > >>> > Does the developer team want to support the android platform? > >>> > > >>> > We are evaluating to use this library on android and got the > exception of jira issue: https://issues.apache.org/jira/browse/AVRO-2863. > >>> > > >>> > Currently version 1.8.2 satisfies all our requirements but we want > to know what the general attitude towards the android platform is. > >>> > > >>> > > >>> > Thanks >