Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [andmore-dev] andmore-dev Digest, Vol 12, Issue 13

The android-gradle-plugin I believe provides the model, and all the documentation for that is here I believe:

http://tools.android.com/tech-docs/new-build-system/user-guide

Xavier would be able to point you better to where they actually have docs on the model if there is any public documentation.

Dave


On 1/20/16 10:17 AM, andmore-dev-request@xxxxxxxxxxx wrote:
Send andmore-dev mailing list submissions to
	andmore-dev@xxxxxxxxxxx

To subscribe or unsubscribe via the World Wide Web, visit
	https://dev.eclipse.org/mailman/listinfo/andmore-dev
or, via email, send a message with subject or body 'help' to
	andmore-dev-request@xxxxxxxxxxx

You can reach the person managing the list at
	andmore-dev-owner@xxxxxxxxxxx

When replying, please edit your Subject line so it is more specific
than "Re: Contents of andmore-dev digest..."


Today's Topics:

    1. Re: How out of date is Andmore (David Carver)
    2. Re: How out of date is Andmore (Doug Schaefer)


----------------------------------------------------------------------

Message: 1
Date: Wed, 20 Jan 2016 10:10:30 -0500
From: David Carver <kingargyle@xxxxxxxxx>
To: andmore-dev@xxxxxxxxxxx
Subject: Re: [andmore-dev] How out of date is Andmore
Message-ID: <569FA366.10600@xxxxxxxxx>
Content-Type: text/plain; charset="windows-1252"; Format="flowed"

There are a couple of bugs that have been filed:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=468315

https://bugs.eclipse.org/bugs/show_bug.cgi?id=468244

The Andmore bug:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=459572

Dave


On 1/19/16 4:01 PM, Xavier Ducrohet wrote:
Gradle provide a tooling API to run it, but also to query the project
model. Our model returns all the information needed to configure the
classpath.

However our model is custom and different from the regular java model
(which actually isn't standard, there's a built-in one for Eclipse and
a built-in one for IJ). What you need is an extension point in
Buildship to allow querying the Android model and then some custom
code to go through it and setup the project's classpath.

The mountain of code you've inherited makes certain assumption
(location of manifest file, source folders, res folders, etc...) that
doesn't work with Gradle. All that info is in the Android model though.

I agree that starting with loading Gradle file, having JDT configured
(classpath) and a bit of work to deploy APKs built by Gradle would be
the first step to do.

On Tue, Jan 19, 2016 at 12:34 PM, Doug Schaefer <cdtdoug@xxxxxxxxx
<mailto:cdtdoug@xxxxxxxxx>> wrote:

     Thanks Dave. Do we have a bug number for the Gradle issue. I'm
     trying to wrap my head around what they'd provide that we'd use.

     My thinking if I was to do it over again would be to start
     minimalistic. With my CDT mindset, I'd call command line tools to
     do as much as we possibly can with them. Clearly we can call
     gradle from the command line, i.e. Runtime.exec(). And we can
     somewhat guess at what jars to add to the classpath based on the
     output of that build. And I wouldn't necessarily try to reuse the
     class files the JDT produces in the gradle build. With gradle
     running as a daemon, I imagine builds would be fast enough, at
     least to start.

     Lots of things to think about. I fear the mountains of code that
     we've inherited and I'm not even certain it works when upstream
     doesn't seem to work. And we don't have a lot of people jumping in
     to volunteer to get us there. Tough problem.

     On Tue, Jan 19, 2016 at 9:10 AM, David Carver
     <kingargyle@xxxxxxxxx <mailto:kingargyle@xxxxxxxxx>> wrote:

         Doug touched on most of these, so I'm just going to answer a
         couple in line.

         On 1/17/16 12:18 PM, Thomas Golden wrote:

             As an Android developer who has reluctantly moved to
             Gradle+Android Studio, here's what I think are table
             stakes for an Eclipse-based solution:

             1. Acknowledge that for better or worse, the Gradle build
             system has won. Any Andmore solution should be capable of
             importing an Android Gradle project successfully. This
             probably means doing a lot of work on Eclipse's Gradle
             support, which is shoddy the last time I looked. This also
             means things like build variants and flavors.

             2. As part of 1, ensure that AAR dependencies are
             first-class citizens. Eclipse/ADT can't handle them at
             all. The android-maven plugin team did some great work
             making it function from the command line but it's useless
             if it can't be done in the IDE. A lot of useful libraries
             (RxAndroid and RxBindings, Play Services, etc) are
             distributed as AARs, not JARs.


         Yes, these are top priorities, but the problem from my end has
         been finding the time necessary to start working on it.
          Also, there are still hooks we need from the Eclipse Gradle
         team for us too capture some of this information.  Regardless
         we do need the AAR container support which can be done
         separetely to at least allow the Maven Tooling to work with
         it.  m2e android stuff works fairly well, but AAR support is
         also one of their most requested features as well.


             3. Also related to 1, ensure that Andmore can build
             multidex projects. ADT was totally incapable of doing
             this, meaning I had to build and deploy from the command
             line, and attach a debugger after the fact. This KILLS
             momentum during development. In a perfect world multidex
             wouldn't be necessary, but it is.


         Multi-dex support was recently added by a community memember.
         I think you have to go into the project settings, and enable
         it directly for a particular project.  If it isn't working
         then it needs a bug report so it can be investigated eventually.


             Some nice-to-haves:
             * Eclipse/ADT had some hard-coded language levels that
             prevented the use of Retrolambda to use Java 8 syntax in
             projects - even if it was configured in your build
             properly, the IDE just would not let you set the source
             level to 8 and flagged all instances of those syntax
             features as compile errors.
             * Steal shamelessly some of the editor features Android
             Studio has such as showing the actual String value of
             R.string ints in the editor.

         You should be able to specify Java 8 as an api level.  I think
         I removed most of those restrictions a while ago.  However, I
         haven't tested it or the dexing support when these are
         enabled.  The default is Java 1.7, at least until the android
         dexers support java 8 and those libraries come from the AOSP.



         _______________________________________________
         andmore-dev mailing list
         andmore-dev@xxxxxxxxxxx <mailto:andmore-dev@xxxxxxxxxxx>
         To change your delivery options, retrieve your password, or
         unsubscribe from this list, visit
         https://dev.eclipse.org/mailman/listinfo/andmore-dev



     _______________________________________________
     andmore-dev mailing list
     andmore-dev@xxxxxxxxxxx <mailto:andmore-dev@xxxxxxxxxxx>
     To change your delivery options, retrieve your password, or
     unsubscribe from this list, visit
     https://dev.eclipse.org/mailman/listinfo/andmore-dev




--
Xavier Ducrohet
Android SDK Tech Lead
Google Inc.
http://developer.android.com | http://tools.android.com

Please do not send me questions directly. Thanks!


_______________________________________________
andmore-dev mailing list
andmore-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/andmore-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://dev.eclipse.org/mailman/private/andmore-dev/attachments/20160120/b6fcc47e/attachment.html>

------------------------------

Message: 2
Date: Wed, 20 Jan 2016 10:17:46 -0500
From: Doug Schaefer <cdtdoug@xxxxxxxxx>
To: andmore developer discussions <andmore-dev@xxxxxxxxxxx>
Subject: Re: [andmore-dev] How out of date is Andmore
Message-ID:
	<CAMACn2Hjg4s6ZP1L_4JedXHETuuyrncMs-2TOF4TOgqBvaKC5w@xxxxxxxxxxxxxx>
Content-Type: text/plain; charset="utf-8"

Thanks Dave,

Maybe it's still too early in the day and I haven't finished my first
coffee yet, but I haven't seen in any of those bugs nor a quick Googling
around what the actual Android model is. Is this something I can figure out
going directly to the Gradle Tooling APIs?

On Wed, Jan 20, 2016 at 10:10 AM, David Carver <kingargyle@xxxxxxxxx> wrote:

There are a couple of bugs that have been filed:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=468315

https://bugs.eclipse.org/bugs/show_bug.cgi?id=468244

The Andmore bug:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=459572

Dave



On 1/19/16 4:01 PM, Xavier Ducrohet wrote:

Gradle provide a tooling API to run it, but also to query the project
model. Our model returns all the information needed to configure the
classpath.

However our model is custom and different from the regular java model
(which actually isn't standard, there's a built-in one for Eclipse and a
built-in one for IJ). What you need is an extension point in Buildship to
allow querying the Android model and then some custom code to go through it
and setup the project's classpath.

The mountain of code you've inherited makes certain assumption (location
of manifest file, source folders, res folders, etc...) that doesn't work
with Gradle. All that info is in the Android model though.

I agree that starting with loading Gradle file, having JDT configured
(classpath) and a bit of work to deploy APKs built by Gradle would be the
first step to do.

On Tue, Jan 19, 2016 at 12:34 PM, Doug Schaefer <cdtdoug@xxxxxxxxx> wrote:

Thanks Dave. Do we have a bug number for the Gradle issue. I'm trying to
wrap my head around what they'd provide that we'd use.

My thinking if I was to do it over again would be to start minimalistic.
With my CDT mindset, I'd call command line tools to do as much as we
possibly can with them. Clearly we can call gradle from the command line,
i.e. Runtime.exec(). And we can somewhat guess at what jars to add to the
classpath based on the output of that build. And I wouldn't necessarily try
to reuse the class files the JDT produces in the gradle build. With gradle
running as a daemon, I imagine builds would be fast enough, at least to
start.

Lots of things to think about. I fear the mountains of code that we've
inherited and I'm not even certain it works when upstream doesn't seem to
work. And we don't have a lot of people jumping in to volunteer to get us
there. Tough problem.

On Tue, Jan 19, 2016 at 9:10 AM, David Carver < <kingargyle@xxxxxxxxx>
kingargyle@xxxxxxxxx> wrote:

Doug touched on most of these, so I'm just going to answer a couple in
line.

On 1/17/16 12:18 PM, Thomas Golden wrote:

As an Android developer who has reluctantly moved to Gradle+Android
Studio, here's what I think are table stakes for an Eclipse-based solution:

1. Acknowledge that for better or worse, the Gradle build system has
won. Any Andmore solution should be capable of importing an Android Gradle
project successfully. This probably means doing a lot of work on Eclipse's
Gradle support, which is shoddy the last time I looked. This also means
things like build variants and flavors.

2. As part of 1, ensure that AAR dependencies are first-class citizens.
Eclipse/ADT can't handle them at all. The android-maven plugin team did
some great work making it function from the command line but it's useless
if it can't be done in the IDE. A lot of useful libraries (RxAndroid and
RxBindings, Play Services, etc) are distributed as AARs, not JARs.

Yes, these are top priorities, but the problem from my end has been
finding the time necessary to start working on it.   Also, there are still
hooks we need from the Eclipse Gradle  team for us too capture some of this
information.  Regardless we do need the AAR container support which can be
done separetely to at least allow the Maven Tooling to work with it.  m2e
android stuff works fairly well, but AAR support is also one of their most
requested features as well.


3. Also related to 1, ensure that Andmore can build multidex projects.
ADT was totally incapable of doing this, meaning I had to build and deploy
from the command line, and attach a debugger after the fact. This KILLS
momentum during development. In a perfect world multidex wouldn't be
necessary, but it is.

Multi-dex support was recently added by a community memember.  I think
you have to go into the project settings, and enable it directly for a
particular project.  If it isn't working then it needs a bug report so it
can be investigated eventually.


Some nice-to-haves:
* Eclipse/ADT had some hard-coded language levels that prevented the
use of Retrolambda to use Java 8 syntax in projects - even if it was
configured in your build properly, the IDE just would not let you set the
source level to 8 and flagged all instances of those syntax features as
compile errors.
* Steal shamelessly some of the editor features Android Studio has such
as showing the actual String value of R.string ints in the editor.

You should be able to specify Java 8 as an api level.  I think I removed
most of those restrictions a while ago.  However, I haven't tested it or
the dexing support when these are enabled.  The default is Java 1.7, at
least until the android dexers support java 8 and those libraries come from
the AOSP.



_______________________________________________
andmore-dev mailing list
andmore-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe
from this list, visit
https://dev.eclipse.org/mailman/listinfo/andmore-dev


_______________________________________________
andmore-dev mailing list
andmore-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe
from this list, visit
https://dev.eclipse.org/mailman/listinfo/andmore-dev



--
Xavier Ducrohet
Android SDK Tech Lead
Google Inc.
http://developer.android.com | <http://tools.android.com>
http://tools.android.com

Please do not send me questions directly. Thanks!


_______________________________________________
andmore-dev mailing listandmore-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visithttps://dev.eclipse.org/mailman/listinfo/andmore-dev



_______________________________________________
andmore-dev mailing list
andmore-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe
from this list, visit
https://dev.eclipse.org/mailman/listinfo/andmore-dev


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://dev.eclipse.org/mailman/private/andmore-dev/attachments/20160120/92f0c410/attachment.html>

------------------------------

_______________________________________________
andmore-dev mailing list
andmore-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/andmore-dev


End of andmore-dev Digest, Vol 12, Issue 13
*******************************************



Back to the top