On this page:
- Description
- Features
- Known limitations
- Supported Android versions
- Supported Technologies
- Function Point, Quality and Sizing support
- CAST AIP compatibility
- Supported DBMS servers
- Prerequisites
- Dependencies with other extensions
- Download and installation instructions
- Packaging, delivering and analyzing your source code
- What results can you expect?
Target audience:
Users of the extension providing Android technologies support for the JEE Analyzer.
Summary: This document provides information about the extension providing Android technologies support for the JEE Analyzer.
What's new in Beta 1:
- The entry point is redefined as the xml layout file.
- The transaction of event handler is more stable.
- Android application object is supported now to identify if the java application is an android application or not.
- The links between android application and activities are now supported.
What's new in Alpha 3:
- Persistent data as shared preferences, internal storage, external storage are now supported.
- AddEventListener is supported to create an event handler.
- Lambda expression and alias listener is supported to define an event handler.
- Entry Point (widgets) and End Point (webservice, persisting data...) are now supported for function points. (CAIP ≥ 8.3.0)
What's new in Alpha 2:
- New widgets :
- RadioButton
- Layout(ListView, LinearLayout, RelativeLayout, WebView, GridView)
- menu
- item
- group
- The source code of widgets in Enlighten.
- Event handler is defined by xml widget.
- Android Event handling support from xml file:
- onFocusChangeListener()
- onKeyListener()
- onTouchListener()
- onCreateContextMenu()
- Android Event handling support from setEventListenner of widgets.
- Android Type Support:
- menu
- WebServices support:
- httpClient library with namespace org.apache.http.client.HttpClient.
- httpUrlConnection from java.net.URL and java.net.HttpURLConnection.
- Create webservice via AsyncTask class of Android.
- Transaction between client and server.
- Transaction between event handler widget and http method call.
Description
This extension provides support for Android technologies. This extension works together with the JEE Analyzer.
In what situation should you install this extension?
If your JEE application source code uses Android technologies you should install this extension.
Features
AndroidManifest file
This file will be analyzed to understand whether the application is indeed an Android application. Links between the Android application and the Activity class are resolved.
UI Controls support
A UI XML file will be created as the common entry point for all widgets. Below is a list of controls supported by this extension:
- TextView
- EditText
- AutoCompleteTextView
- Button
- ImageButton
- CheckBox
- Spinner
- TimePicker
- RadioButton
- Layout(ListView, LinearLayout, RelativeLayout, WebView, GridView)
- menu
- item
- group
- Other widgets will be resolved to find the widget type. If it cannot be found, the widget will be created as a CAST_Android_UndefinedWidget type - for example widgets implemented by the client.
Android Event handling support from XML file
- onClickListener()
- onLongClickListener()
- onFocusChangeListener()
- onKeyListener()
- onTouchListener()
- onCreateContextMenu()
Android Event handling support from setEventListenner and addEventListener in widgets
- The lambda function can be used to define the event handler. Sample: Button.setOnClickListenner(new View.OncLickListentHandler{...}), with lamda function: Button.setOnClickListenner( (v) → {})
Android Type support
- RelativeLayout
- LinearLayout
- menu
WebServices support
Support for third-party WebServices is provided:
- httpClient library with namespace cz.msebera.android.httpclient.
- httpClient library with namespace org.apache.http.client.HttpClient.
- httpUrlConnection from java.net.URL and java.net.HttpURLConnection.
- Create webservice via AsyncTask class of Android.
- Transaction between client and server on fullstack project.
- Transaction between event handler widget and http method call.
End to End transactions
- End to End transactions are resolved:
- Entry point: layout ui xml file
- End point: web service, persisting data
Known limitations
- CAST recommends using the most recent stable release of CAST AIP with the extension for best results.
- Some limitations origniate in the "internal extension" (0.7.0 funcrel) that is delivered with all other CAST AIP extensions. These limitations will be removed in the next release of the "internal extension".
- Some links won't be resolved because of missing jar file.
- Lambda expression is supported from CAST AIP 8.2.11. There are still some limitations for transactions.
- Web Service URI name isn't stable for more complex situations.
- Currently there is no discoverer available in the CAST Delivery Manager Tool, so the extension will not recognize Android projects. Users need to create JEE Analysis Units manually in order to analyze the Android application source code.
Supported Android versions
Version | Supported |
---|---|
4.4 - 8.0 |
Supported Technologies
Technology | Supported |
---|---|
Java | |
Kotlin |
Function Point, Quality and Sizing support
- Function Points (transactions): a green tick indicates that OMG Function Point counting and Transaction Risk Index are supported
- Quality and Sizing: a green tick indicates that CAST can measure size and that a minimum set of Quality Rules exist
Function Points (transactions) | Quality and Sizing |
---|---|
CAST AIP release | Supported |
---|---|
8.3.x | |
8.2.x |
Supported DBMS servers
This extension is compatible with the following DBMS servers:
CAST AIP release | CSS | Oracle | Microsoft |
---|---|---|---|
All supported releases |
Prerequisites
An installation of any compatible release of CAST AIP (see table above) |
Dependencies with other extensions
Some CAST extensions require the presence of other CAST extensions in order to function correctly. The Android extension requires that the following other CAST extensions are also installed:
- JEE Analyzer
- com.castsoftware.internal.platform (internal extension) ≥ 0.7.0 funcrel
- Web services linker service (internal technical extension) ≥ 1.6.1 funcrel
Note that:
- when using the CAST Extension Downloader to download the extension and the Manage Extensions interface in CAST Server Manager to install the extension, any dependent extensions are automatically downloaded and installed for you. You do not need to do anything.
- the JEE Analyzer is not a dependency, but since this extension is always installed with AIP, you do not need to do anything.
Download and installation instructions
Please see:
The latest release status of this extension can be seen when downloading it from the CAST Extend server.
Packaging, delivering and analyzing your source code
Once the extension is installed, no further configuration changes are required before you can package your source code and run an analysis. The process of packaging, delivering and analyzing your source code does not change in any way:
- Package and deliver your application.
- Analyze your delivered application source code.
What results can you expect?
Once the analysis/snapshot generation has completed, you can view the results in the normal manner (for example via CAST Enlighten):
Transactions
Click to enlarge
Structure of layout
Click to enlarge
Web services linker
Click to enlarge
Function points (when using CAIP ≥ 8.3.0)
Click to enlarge
Objects
The following objects are displayed in CAST Enlighten:
Icon | Description |
---|---|
Button, ImageButton, RadioButton, Checkbox, Item | |
AutoCompleteTextView, Text View, Edit Text | |
Spinner, Time Picker, Relative Layout, Linear Layout, Menu, Group, ListView, WebView, GridView, UndefinedWidget. | |
Event handler | |
Get Resource Service | |
Put Resource Service | |
Post Resource Service | |
Delete Resource Service | |
Shared preferences, internal storage, external storage | |
Android Application | |
Android ui layout |
Rules
None.