Difference between revisions of "Package the Android Extensions for Eclipse"

From CDOT Wiki
Jump to: navigation, search
(Project Leader(s))
(Project Details)
 
(41 intermediate revisions by 7 users not shown)
Line 4: Line 4:
 
== Project Description ==
 
== Project Description ==
  
 +
There are a group of extensions (4?) for Eclipse that enable development of Android applications. Package these extensions and make them available in (or for) Fedora.
 +
 +
Expected outcome: The extensions will be available as Fedora packages, or if not permitted by licensing, as packages available from an external repository.
 +
 +
Maximum number of students: 4 (one per extension/plugin)
 +
 +
Skills required: packaging, testing
 +
 +
Resources: Raymond Chan (rchan), John Selmys
 
<!-- Description should be no longer than a paragraph.  Include links to any relevant on-line resources.  For example, [http://fedoraproject.org/wiki] or [http://developer.mozilla.org MDC]. -->
 
<!-- Description should be no longer than a paragraph.  Include links to any relevant on-line resources.  For example, [http://fedoraproject.org/wiki] or [http://developer.mozilla.org MDC]. -->
  
<sub></sub>== Project Leader(s) ==
+
<sub></sub>
 
+
== Project Leader(s) ==
'''Rudolf R Janns''' <br />
 
Wiki Page: [[User: Rudolf R Janns]]<br />
 
IRC: rjanns<br />
 
  
 
'''Alon Yufidin'''<br />
 
'''Alon Yufidin'''<br />
Line 20: Line 26:
 
IRC: dkdelidj
 
IRC: dkdelidj
  
'''Omarr Khattab''' <br />
 
Wiki Page: [[user: Omarr Khattab]]<br/>
 
IRC: okhattab<br />
 
 
 
'''Kalpaniya Parmar'''<br />
 
Wiki Page: [[User: kparmar4]]<br />
 
IRC: kparmar4
 
 
'''Jiecheng Qiu'''<br />
 
Wiki Page: [[User: jcqiu]]<br />
 
IRC: Jie_Q
 
  
 
== Project Contributor(s) ==
 
== Project Contributor(s) ==
Line 41: Line 35:
 
== Project Details ==
 
== Project Details ==
  
<!-- Provides more depth than the Project Description.  This is the place for technical discussions, project specs, or other details. If this gets very long, you might consider breaking this part into multiple pages and linking to them. -->
+
Here are the details of the milestones so far.
 +
 
 +
 
 +
<b><font style="font-size:110%">0.1 Milestone</font></b>
 +
----
 +
 
 +
The purpose of this milestone is twofold - research and preliminary RPM package release.
 +
The research into the Eclipse extensions for Android showed that there are about 6 extensions (or plugins) for Eclipse that are related to Android:
 +
<pre>
 +
- ADT (Android Development Tools)
 +
- DDMS (Dalvik Debug Monitor Server)
 +
- GLDebugger (OpenGL Debugger)
 +
- Hierarchyviewer
 +
- Traceview
 +
- Base
 +
</pre>
 +
 
 +
Progress so far:
 +
<pre>
 +
- research phase is mostly completed; we know what we need to do
 +
- extensions are stored as JAR files; JARs contain the source Java files
 +
- for a successful completion of this project, we need to simplify the process of installing ADT as much as possible
 +
</pre>
 +
 
 +
How ADT needs to be installed at the moment:
 +
<pre>
 +
-> Install Eclipse, start Eclipse
 +
-> Get the Android depository link
 +
-> Add New Software In Eclipse
 +
-> Paste link
 +
-> Accept a few licences
 +
-> Wait for download and installation
 +
-> Restart Eclipse
 +
</pre>
 +
 
 +
Instead, we intend to shorten it to this:
 +
<pre>
 +
-> Install Eclipse
 +
-> Run "yum install eclipse-adt eclipse-ddms ..." or  
 +
          "yum install @"Android Extensions for Eclipse
 +
-> Start Eclipse
 +
</pre>
 +
 
 +
Alon will be focusing on packaging the ADT plugin and Daniel will be focusing on the DDMS plugin.
 +
 
 +
 
 +
<b><font style="font-size:100%">ADT</font></b>
 +
----
 +
 
 +
In order to retrieve the files required for this release, the following steps were taken:
 +
<pre>
 +
- Eclipse was installed on Fedora 17 using the built in yum installer.
 +
- Plugins were installed using the built-in updater in Eclipse.
 +
- Required files were retrieved from the plugins and features folders under the main Eclipse folder:
 +
 
 +
  eclipse/
 +
    dropins/
 +
      eclipse/
 +
        features/
 +
        plugins/
 +
 
 +
  OR
 +
 
 +
  eclipse/
 +
    dropins/
 +
      org.eclipse.core.tools_1.4.0.200710121455.jar
 +
      org.eclipse.releng.tools_3.3.0.v20070412/
 +
        plugin.xml
 +
        tools.jar
 +
</pre>
 +
 
 +
To build the actual RPM, I downloaded a source RPM of an existing non-android Eclipse plugin and took a look at the spec file to determine the required steps needed to package and install the ADT Plugin.
 +
 
 +
The RPM that I am releasing today, places the files in the correct folders, however, the dependencies required for the ADT Plugin are not included and therefore require manual intervention at this point.
 +
 
 +
You can find the release files below:
 +
 
 +
[http://dl.dropbox.com/u/3209356/ADT/adtplugin-0.0.1-1.fc17.noarch.rpm RPM]
 +
[http://dl.dropbox.com/u/3209356/ADT/adtplugin-0.0.1-1.fc17.src.rpm SRPM]
 +
[http://dl.dropbox.com/u/3209356/ADT/adtplugin.spec Spec file]
 +
 
 +
 
 +
<b><font style="font-size:100%">DDMS</font></b>
 +
----
 +
 
 +
As stated previously, to package DDMS, the Dalvik Debug Monitor Server, first you have to have Eclipse installed (done through a simple <code>yum install</code> operation). After that, we would need an RPM to use to install the DDMS plugin.
 +
 
 +
My RPM package was created by using the spec file of an already existing Eclipse plugin, and modifying it to my needs. I used the source JAR files that are provided by the Android project and packaged them into an RPM file, using rpmbuild. Here’s a quick [http://i.imgur.com/JJmPj.png screenshot].
 +
 
 +
Now we have an RPM that is almost complete - it places the JAR files in the correct sub-folders of Eclipse, but the plugin will not work - it needs a few [http://i.imgur.com/onxqd.png dependencies] to be satisfied. Those dependencies will be taken care of by milestone 0.2.
 +
 
 +
Here are the RPM, SRC-RPM and spec files.
 +
[https://www.dropbox.com/s/yr1wj6646wqytin/ddms-0.0.1-1.fc17.noarch.rpm RPM] [https://www.dropbox.com/s/0qt8x7qdv7be5e1/ddms-0.0.1-1.fc17.src.rpm SRPM] [https://www.dropbox.com/s/twts0w40sysboad/ddms.spec Spec file]
 +
 
 +
 
 +
<b><font style="font-size:110%">0.2 Milestone</font></b>
 +
----
 +
 
 +
Progress so far:
 +
<pre>
 +
- ADT/DDMS plugins are both functioning if placed in the plugins/ and features/ directories
 +
- The RPM for ADT/DDMS works and gets installed without issues
 +
- Hierarchy Viewer RPM is also a successful installation
 +
</pre>
 +
 
 +
Our team decided to package ADT and DDMS as one packages, and then add another RPM for another Android plugin. Daniel will package the ADT/DDMS plugins and Alon will package the Hierarchy Viewer.
 +
 
 +
 
 +
<b><font style="font-size:100%">ADT + DDMS</font></b>
 +
----
 +
 
 +
Since ADT and DDMS cannot function without each other, we've combined them into one package called "eclipse-adt_ddms-plugin". ADT and DDMS both require each other and 2 more JAR files - the overlay and the base. All of them are included in the RPM.
 +
 
 +
For a more detailed look at the preparation phase of the RPM, please visit the [http://sbr600.tumblr.com/post/36367708826/0-2-android-extensions-for-eclipse blog post] by Daniel.
 +
 
 +
 
 +
<b><font style="font-size:100%">Hierarchy Viewer</font></b>
 +
----
 +
 
 +
Due to the small change in our project plan as described above, Hierarchy Viewer is now the plugin packaged by Alon instead of ADT. Please visit the 0.2 release [http://ayufidin.blogspot.ca/2012/11/packaging-android-extensions-for-eclipse_23.html post] for details.
 +
 
 +
 
 +
<b><font style="font-size:110%">0.3 Milestone</font></b>
 +
----
 +
 
 +
 
 +
<b><font style="font-size:100%">ADT + DDMS</font></b>
 +
----
 +
 
 +
ADT & DDMS final release is packaged by Daniel, please visit the blog [http://sbr600.tumblr.com/post/37518058012/0-3-adt-and-ddms-rpm-packages post]
 +
 
 +
 
 +
<b><font style="font-size:100%">Hierarchy Viewer + Traceview</font></b>
 +
----
 +
 
 +
Hierarchy Viewer & Traceview final release is packaged by Alon, please visit the blog [http://ayufidin.blogspot.ca/2012/12/packaging-android-extensions-for.html post]
  
 
== Project Plan ==
 
== Project Plan ==
  
Tracking mechanism (bugzilla, trac, github, ...):
+
Key contacts:<br />
 
+
[[User: dkdelidj|Daniel]] (ADT+DDMS Plugin) and [[User: ayufidin|Alon]] (Hierarchy Viewer Plugin)
Key contacts:
 
<!-- Add links to any mentors or key participants in the community. -->
 
  
 
Goals for each release and plans for reaching those goals:
 
Goals for each release and plans for reaching those goals:
 
<!-- Note: each contributor is expected to have unique goals. These goals may be ''related'' to other students' work, but must be ''distinct'' and ''attainable'' regardless of the state of the other students' work. For example, under the umbrella of one project title, one student may work on packaging a piece of software and another may work on documentation, or one may work on solving one bug and another on solving another bug, but two students must not work on the same bug or depend on the other students' work in order to be able to complete their own project. -->
 
<!-- Note: each contributor is expected to have unique goals. These goals may be ''related'' to other students' work, but must be ''distinct'' and ''attainable'' regardless of the state of the other students' work. For example, under the umbrella of one project title, one student may work on packaging a piece of software and another may work on documentation, or one may work on solving one bug and another on solving another bug, but two students must not work on the same bug or depend on the other students' work in order to be able to complete their own project. -->
* 0.1
+
 
* 0.2
+
* 0.1 -> Create draft RPMs that contain the .jar files relevant to each plugin, the RPM will place the files into the "dropins" folder of Eclipse.
* 0.3
+
* 0.2 -> Include dependencies required for each plugin within the RPMs, making sure we have functional RPMs.
 +
* 0.3 -> Finalizing RPMs and making sure that it is in the main Fedora Repo.
  
 
== Communication ==
 
== Communication ==
Line 63: Line 191:
 
=== Upsteam Wiki and Web ===
 
=== Upsteam Wiki and Web ===
 
<!-- Links to upstream wiki/web pages -->
 
<!-- Links to upstream wiki/web pages -->
 +
Fedora Project How to setup android SDK: [http://fedoraproject.org/wiki/HOWTO_Setup_Android_Development How to.]
  
 
=== Links/Bugs/Tracking ===
 
=== Links/Bugs/Tracking ===
<!-- Add a link to any page(s) related to your work, including the bug numbers (on bugzilla or trac) -->
+
Eclipse download: [http://www.eclipse.org/downloads/ Download Webpage]<BR/>
 +
Eclipse Resources: [http://www.eclipse.org/resources/ Resources]<BR/>
 +
Eclipse Forus: [http://www.eclipse.org/forums/ Forums]<BR/>
 +
Fedora 17 32 bit download: [http://download.fedoraproject.org/pub/fedora/linux/releases/17/Live/i686/Fedora-17-i686-Live-Desktop.iso ISO Download]<BR/>
 +
Android SDK for Linux download: [http://dl.google.com/android/android-sdk_r20.0.3-linux.tgz andoid-sdk_r20.0.3-linux.tgz]<br/>
 +
Installing thr Android SDK: [http://developer.android.com/sdk/installing/index.html Installation Guide]<br />
 +
Android ADT plugin: [https://developer.android.com/tools/sdk/eclipse-adt.html Information] [https://developer.android.com/sdk/installing/installing-adt.html Installing in Eclipse]
  
 
=== Source Code Control ===
 
=== Source Code Control ===
Line 71: Line 206:
  
 
=== Blogs ===
 
=== Blogs ===
<!-- Links to the blogs of people involved, both inside and outside Seneca -->
+
[http://sbr600.tumblr.com/ Daniel's blog]<br />
 +
[http://ayufidin.blogspot.ca/ Alon's blog]
  
 
==== Seneca Particpants ====
 
==== Seneca Particpants ====
 +
[[User: dkdelidj|Daniel]]<br />
 +
 +
[[User: ayufidin|Alon]]
  
 
==== Non-Seneca Participants ====
 
==== Non-Seneca Participants ====
 
<!-- Links to the blogs of any non-Seneca participants in this project -->
 
<!-- Links to the blogs of any non-Seneca participants in this project -->
 +
Blog Post how to which may be helpful.  Includes Screen shots of setup. [http://www.if-not-true-then-false.com/2010/android-sdk-and-eclipse-adt-on-fedora-centos-red-hat-rhel/ How To]
  
 
==== Planets ====
 
==== Planets ====

Latest revision as of 11:16, 10 December 2012

Packaging the Android Extensions for Eclipse

Project Description

There are a group of extensions (4?) for Eclipse that enable development of Android applications. Package these extensions and make them available in (or for) Fedora.

Expected outcome: The extensions will be available as Fedora packages, or if not permitted by licensing, as packages available from an external repository.

Maximum number of students: 4 (one per extension/plugin)

Skills required: packaging, testing

Resources: Raymond Chan (rchan), John Selmys

Project Leader(s)

Alon Yufidin
Wiki Page: User: ayufidin
IRC: ayufidin

Daniel Delidjakov
Wiki Page: User: dkdelidj
IRC: dkdelidj


Project Contributor(s)

Project Details

Here are the details of the milestones so far.


0.1 Milestone


The purpose of this milestone is twofold - research and preliminary RPM package release. The research into the Eclipse extensions for Android showed that there are about 6 extensions (or plugins) for Eclipse that are related to Android:

- ADT (Android Development Tools)
- DDMS (Dalvik Debug Monitor Server)
- GLDebugger (OpenGL Debugger)
- Hierarchyviewer
- Traceview
- Base

Progress so far:

- research phase is mostly completed; we know what we need to do
- extensions are stored as JAR files; JARs contain the source Java files
- for a successful completion of this project, we need to simplify the process of installing ADT as much as possible

How ADT needs to be installed at the moment:

-> Install Eclipse, start Eclipse
-> Get the Android depository link 
-> Add New Software In Eclipse 
-> Paste link 
-> Accept a few licences 
-> Wait for download and installation 
-> Restart Eclipse

Instead, we intend to shorten it to this:

-> Install Eclipse 
-> Run "yum install eclipse-adt eclipse-ddms ..." or 
          "yum install @"Android Extensions for Eclipse
-> Start Eclipse 

Alon will be focusing on packaging the ADT plugin and Daniel will be focusing on the DDMS plugin.


ADT


In order to retrieve the files required for this release, the following steps were taken:

- Eclipse was installed on Fedora 17 using the built in yum installer.
- Plugins were installed using the built-in updater in Eclipse.
- Required files were retrieved from the plugins and features folders under the main Eclipse folder:

   eclipse/
     dropins/
       eclipse/
         features/
         plugins/

   OR

   eclipse/
     dropins/
       org.eclipse.core.tools_1.4.0.200710121455.jar
       org.eclipse.releng.tools_3.3.0.v20070412/
         plugin.xml
         tools.jar

To build the actual RPM, I downloaded a source RPM of an existing non-android Eclipse plugin and took a look at the spec file to determine the required steps needed to package and install the ADT Plugin.

The RPM that I am releasing today, places the files in the correct folders, however, the dependencies required for the ADT Plugin are not included and therefore require manual intervention at this point.

You can find the release files below:

RPM SRPM Spec file


DDMS


As stated previously, to package DDMS, the Dalvik Debug Monitor Server, first you have to have Eclipse installed (done through a simple yum install operation). After that, we would need an RPM to use to install the DDMS plugin.

My RPM package was created by using the spec file of an already existing Eclipse plugin, and modifying it to my needs. I used the source JAR files that are provided by the Android project and packaged them into an RPM file, using rpmbuild. Here’s a quick screenshot.

Now we have an RPM that is almost complete - it places the JAR files in the correct sub-folders of Eclipse, but the plugin will not work - it needs a few dependencies to be satisfied. Those dependencies will be taken care of by milestone 0.2.

Here are the RPM, SRC-RPM and spec files. RPM SRPM Spec file


0.2 Milestone


Progress so far:

- ADT/DDMS plugins are both functioning if placed in the plugins/ and features/ directories
- The RPM for ADT/DDMS works and gets installed without issues
- Hierarchy Viewer RPM is also a successful installation

Our team decided to package ADT and DDMS as one packages, and then add another RPM for another Android plugin. Daniel will package the ADT/DDMS plugins and Alon will package the Hierarchy Viewer.


ADT + DDMS


Since ADT and DDMS cannot function without each other, we've combined them into one package called "eclipse-adt_ddms-plugin". ADT and DDMS both require each other and 2 more JAR files - the overlay and the base. All of them are included in the RPM.

For a more detailed look at the preparation phase of the RPM, please visit the blog post by Daniel.


Hierarchy Viewer


Due to the small change in our project plan as described above, Hierarchy Viewer is now the plugin packaged by Alon instead of ADT. Please visit the 0.2 release post for details.


0.3 Milestone



ADT + DDMS


ADT & DDMS final release is packaged by Daniel, please visit the blog post


Hierarchy Viewer + Traceview


Hierarchy Viewer & Traceview final release is packaged by Alon, please visit the blog post

Project Plan

Key contacts:
Daniel (ADT+DDMS Plugin) and Alon (Hierarchy Viewer Plugin)

Goals for each release and plans for reaching those goals:

  • 0.1 -> Create draft RPMs that contain the .jar files relevant to each plugin, the RPM will place the files into the "dropins" folder of Eclipse.
  • 0.2 -> Include dependencies required for each plugin within the RPMs, making sure we have functional RPMs.
  • 0.3 -> Finalizing RPMs and making sure that it is in the main Fedora Repo.

Communication

Mailing Lists

Upsteam Wiki and Web

Fedora Project How to setup android SDK: How to.

Links/Bugs/Tracking

Eclipse download: Download Webpage
Eclipse Resources: Resources
Eclipse Forus: Forums
Fedora 17 32 bit download: ISO Download
Android SDK for Linux download: andoid-sdk_r20.0.3-linux.tgz
Installing thr Android SDK: Installation Guide
Android ADT plugin: Information Installing in Eclipse

Source Code Control

Blogs

Daniel's blog
Alon's blog

Seneca Particpants

Daniel

Alon

Non-Seneca Participants

Blog Post how to which may be helpful. Includes Screen shots of setup. How To

Planets

Project News