1. The screen magnification feature was implemented entirely as a part of the accessibility manager. To achieve that the window manager had to implement a bunch of hooks for an external client to observe its internal state. This was problematic since it dilutes the window manager interface and allows code that is deeply coupled with the window manager to reside outside of it. Also the observer callbacks were IPCs which cannot be called with the window manager's lock held. To avoid that the window manager had to post messages requesting notification of interested parties which makes the code consuming the callbacks to run asynchronously of the window manager. This causes timing issues and adds unnecessary complexity. Now the magnification logic is split in two halves. The first half that is responsible to track the magnified portion of the screen and serve as a policy which windows can be magnified and it is a part of the window manager. This part exposes higher level APIs allowing interested parties with the right permissions to control the magnification of a given display. The APIs also allow a client to be registered for callbacks on interesting changes such as resize of the magnified region, etc. This part servers as a mediator between magnification controllers and the window manager. The second half is a controller that is responsible to drive the magnification state based on touch interactions. It also presents a highlight when magnified to suggest the magnified potion of the screen. The controller is responsible for auto zooming out in case the user context changes - rotation, new actitivity. The controller also auto pans if a dialog appears and it does not interesect the magnified frame. bug:7410464 2. By design screen magnification and touch exploration work separately and together. If magnification is enabled the user sees a larger version of the widgets and a sub section of the screen content. Accessibility services use the introspection APIs to "see" what is on the screen so they can speak it, navigate to the next item in response to a gesture, etc. Hence, the information returned to accessibility services has to reflect what a sighted user would see on the screen. Therefore, if the screen is magnified we need to adjust the bounds and position of the infos describing views in a magnified window such that the info bounds are equivalent to what the user sees. To improve performance we keep accessibility node info caches in the client process. However, when magnification state changes we have to clear these caches since the bounds of the cached infos no longer reflect the screen content which just got smaller or larger. This patch propagates not only the window scale as before but also the X/Y pan and the bounds of the magnified portion of the screen to the introspected app. This information is used to adjust the bounds of the node infos coming from this window such that the reported bounds are the same as the user sees not as the app thinks they are. Note that if magnification is enabled we zoom the content and pan it along the X and Y axis. Also recomputed is the isVisibleToUser property of the reported info since in a magnified state the user sees a subset of the window content and the views not in the magnified viewport should be reported as not visible to the user. bug:7344059 Change-Id: I6f7832c7a6a65c5368b390eb1f1518d0c7afd7d2
767 lines
34 KiB
Makefile
767 lines
34 KiB
Makefile
#
|
|
# Copyright (C) 2008 The Android Open Source Project
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
#
|
|
LOCAL_PATH := $(call my-dir)
|
|
|
|
# We have a special case here where we build the library's resources
|
|
# independently from its code, so we need to find where the resource
|
|
# class source got placed in the course of building the resources.
|
|
# Thus, the magic here.
|
|
# Also, this module cannot depend directly on the R.java file; if it
|
|
# did, the PRIVATE_* vars for R.java wouldn't be guaranteed to be correct.
|
|
# Instead, it depends on the R.stamp file, which lists the corresponding
|
|
# R.java file as a prerequisite.
|
|
# TODO: find a more appropriate way to do this.
|
|
framework_res_source_path := APPS/framework-res_intermediates/src
|
|
|
|
# the library
|
|
# ============================================================
|
|
include $(CLEAR_VARS)
|
|
|
|
# FRAMEWORKS_BASE_SUBDIRS comes from build/core/pathmap.mk
|
|
LOCAL_SRC_FILES := $(call find-other-java-files,$(FRAMEWORKS_BASE_SUBDIRS))
|
|
|
|
# EventLogTags files.
|
|
LOCAL_SRC_FILES += \
|
|
core/java/android/content/EventLogTags.logtags \
|
|
core/java/android/speech/tts/EventLogTags.logtags \
|
|
core/java/android/webkit/EventLogTags.logtags \
|
|
|
|
# The following filters out code we are temporarily not including at all.
|
|
# TODO: Move AWT and beans (and associated harmony code) back into libcore.
|
|
# TODO: Maybe remove javax.microedition entirely?
|
|
# TODO: Move SyncML (org.mobilecontrol.*) into its own library.
|
|
LOCAL_SRC_FILES := $(filter-out \
|
|
org/mobilecontrol/% \
|
|
,$(LOCAL_SRC_FILES))
|
|
|
|
## READ ME: ########################################################
|
|
##
|
|
## When updating this list of aidl files, consider if that aidl is
|
|
## part of the SDK API. If it is, also add it to the list below that
|
|
## is preprocessed and distributed with the SDK. This list should
|
|
## not contain any aidl files for parcelables, but the one below should
|
|
## if you intend for 3rd parties to be able to send those objects
|
|
## across process boundaries.
|
|
##
|
|
## READ ME: ########################################################
|
|
LOCAL_SRC_FILES += \
|
|
core/java/android/accessibilityservice/IAccessibilityServiceConnection.aidl \
|
|
core/java/android/accessibilityservice/IAccessibilityServiceClient.aidl \
|
|
core/java/android/accounts/IAccountManager.aidl \
|
|
core/java/android/accounts/IAccountManagerResponse.aidl \
|
|
core/java/android/accounts/IAccountAuthenticator.aidl \
|
|
core/java/android/accounts/IAccountAuthenticatorResponse.aidl \
|
|
core/java/android/app/IActivityController.aidl \
|
|
core/java/android/app/IActivityPendingResult.aidl \
|
|
core/java/android/app/IAlarmManager.aidl \
|
|
core/java/android/app/IBackupAgent.aidl \
|
|
core/java/android/app/IInstrumentationWatcher.aidl \
|
|
core/java/android/app/INotificationManager.aidl \
|
|
core/java/android/app/IProcessObserver.aidl \
|
|
core/java/android/app/ISearchManager.aidl \
|
|
core/java/android/app/ISearchManagerCallback.aidl \
|
|
core/java/android/app/IServiceConnection.aidl \
|
|
core/java/android/app/IStopUserCallback.aidl \
|
|
core/java/android/app/IThumbnailReceiver.aidl \
|
|
core/java/android/app/IThumbnailRetriever.aidl \
|
|
core/java/android/app/ITransientNotification.aidl \
|
|
core/java/android/app/IUiModeManager.aidl \
|
|
core/java/android/app/IUserSwitchObserver.aidl \
|
|
core/java/android/app/IWallpaperManager.aidl \
|
|
core/java/android/app/IWallpaperManagerCallback.aidl \
|
|
core/java/android/app/admin/IDevicePolicyManager.aidl \
|
|
core/java/android/app/backup/IBackupManager.aidl \
|
|
core/java/android/app/backup/IFullBackupRestoreObserver.aidl \
|
|
core/java/android/app/backup/IRestoreObserver.aidl \
|
|
core/java/android/app/backup/IRestoreSession.aidl \
|
|
core/java/android/bluetooth/IBluetooth.aidl \
|
|
core/java/android/bluetooth/IBluetoothA2dp.aidl \
|
|
core/java/android/bluetooth/IBluetoothCallback.aidl \
|
|
core/java/android/bluetooth/IBluetoothHeadset.aidl \
|
|
core/java/android/bluetooth/IBluetoothHeadsetPhone.aidl \
|
|
core/java/android/bluetooth/IBluetoothHealth.aidl \
|
|
core/java/android/bluetooth/IBluetoothHealthCallback.aidl \
|
|
core/java/android/bluetooth/IBluetoothInputDevice.aidl \
|
|
core/java/android/bluetooth/IBluetoothPan.aidl \
|
|
core/java/android/bluetooth/IBluetoothManager.aidl \
|
|
core/java/android/bluetooth/IBluetoothManagerCallback.aidl \
|
|
core/java/android/bluetooth/IBluetoothPbap.aidl \
|
|
core/java/android/bluetooth/IBluetoothStateChangeCallback.aidl \
|
|
core/java/android/content/IClipboard.aidl \
|
|
core/java/android/content/IContentService.aidl \
|
|
core/java/android/content/IIntentReceiver.aidl \
|
|
core/java/android/content/IIntentSender.aidl \
|
|
core/java/android/content/IOnPrimaryClipChangedListener.aidl \
|
|
core/java/android/content/ISyncAdapter.aidl \
|
|
core/java/android/content/ISyncContext.aidl \
|
|
core/java/android/content/ISyncStatusObserver.aidl \
|
|
core/java/android/content/pm/IPackageDataObserver.aidl \
|
|
core/java/android/content/pm/IPackageDeleteObserver.aidl \
|
|
core/java/android/content/pm/IPackageInstallObserver.aidl \
|
|
core/java/android/content/pm/IPackageManager.aidl \
|
|
core/java/android/content/pm/IPackageMoveObserver.aidl \
|
|
core/java/android/content/pm/IPackageStatsObserver.aidl \
|
|
core/java/android/database/IContentObserver.aidl \
|
|
core/java/android/hardware/ISerialManager.aidl \
|
|
core/java/android/hardware/display/IDisplayManager.aidl \
|
|
core/java/android/hardware/display/IDisplayManagerCallback.aidl \
|
|
core/java/android/hardware/input/IInputManager.aidl \
|
|
core/java/android/hardware/input/IInputDevicesChangedListener.aidl \
|
|
core/java/android/hardware/usb/IUsbManager.aidl \
|
|
core/java/android/net/IConnectivityManager.aidl \
|
|
core/java/android/net/INetworkManagementEventObserver.aidl \
|
|
core/java/android/net/IThrottleManager.aidl \
|
|
core/java/android/net/INetworkPolicyListener.aidl \
|
|
core/java/android/net/INetworkPolicyManager.aidl \
|
|
core/java/android/net/INetworkStatsService.aidl \
|
|
core/java/android/net/INetworkStatsSession.aidl \
|
|
core/java/android/net/nsd/INsdManager.aidl \
|
|
core/java/android/nfc/INdefPushCallback.aidl \
|
|
core/java/android/nfc/INfcAdapter.aidl \
|
|
core/java/android/nfc/INfcAdapterExtras.aidl \
|
|
core/java/android/nfc/INfcTag.aidl \
|
|
core/java/android/os/ICancellationSignal.aidl \
|
|
core/java/android/os/IHardwareService.aidl \
|
|
core/java/android/os/IMessenger.aidl \
|
|
core/java/android/os/INetworkManagementService.aidl \
|
|
core/java/android/os/IPermissionController.aidl \
|
|
core/java/android/os/IPowerManager.aidl \
|
|
core/java/android/os/IRemoteCallback.aidl \
|
|
core/java/android/os/ISchedulingPolicyService.aidl \
|
|
core/java/android/os/IUpdateLock.aidl \
|
|
core/java/android/os/IUserManager.aidl \
|
|
core/java/android/os/IVibratorService.aidl \
|
|
core/java/android/service/dreams/IDreamManager.aidl \
|
|
core/java/android/service/dreams/IDreamService.aidl \
|
|
core/java/android/service/wallpaper/IWallpaperConnection.aidl \
|
|
core/java/android/service/wallpaper/IWallpaperEngine.aidl \
|
|
core/java/android/service/wallpaper/IWallpaperService.aidl \
|
|
core/java/android/view/accessibility/IAccessibilityInteractionConnection.aidl\
|
|
core/java/android/view/accessibility/IAccessibilityInteractionConnectionCallback.aidl\
|
|
core/java/android/view/accessibility/IAccessibilityManager.aidl \
|
|
core/java/android/view/accessibility/IAccessibilityManagerClient.aidl \
|
|
core/java/android/view/IApplicationToken.aidl \
|
|
core/java/android/view/IDisplayMagnificationMediator.aidl \
|
|
core/java/android/view/IDisplayMagnificationController.aidl \
|
|
core/java/android/view/IInputFilter.aidl \
|
|
core/java/android/view/IInputFilterHost.aidl \
|
|
core/java/android/view/IOnKeyguardExitResult.aidl \
|
|
core/java/android/view/IRotationWatcher.aidl \
|
|
core/java/android/view/IWindow.aidl \
|
|
core/java/android/view/IWindowManager.aidl \
|
|
core/java/android/view/IWindowSession.aidl \
|
|
core/java/android/speech/IRecognitionListener.aidl \
|
|
core/java/android/speech/IRecognitionService.aidl \
|
|
core/java/android/speech/tts/ITextToSpeechCallback.aidl \
|
|
core/java/android/speech/tts/ITextToSpeechService.aidl \
|
|
core/java/com/android/internal/app/IBatteryStats.aidl \
|
|
core/java/com/android/internal/app/IUsageStats.aidl \
|
|
core/java/com/android/internal/app/IMediaContainerService.aidl \
|
|
core/java/com/android/internal/appwidget/IAppWidgetService.aidl \
|
|
core/java/com/android/internal/appwidget/IAppWidgetHost.aidl \
|
|
core/java/com/android/internal/backup/IBackupTransport.aidl \
|
|
core/java/com/android/internal/policy/IFaceLockCallback.aidl \
|
|
core/java/com/android/internal/policy/IFaceLockInterface.aidl \
|
|
core/java/com/android/internal/os/IDropBoxManagerService.aidl \
|
|
core/java/com/android/internal/os/IResultReceiver.aidl \
|
|
core/java/com/android/internal/statusbar/IStatusBar.aidl \
|
|
core/java/com/android/internal/statusbar/IStatusBarService.aidl \
|
|
core/java/com/android/internal/textservice/ISpellCheckerService.aidl \
|
|
core/java/com/android/internal/textservice/ISpellCheckerSession.aidl \
|
|
core/java/com/android/internal/textservice/ISpellCheckerSessionListener.aidl \
|
|
core/java/com/android/internal/textservice/ITextServicesManager.aidl \
|
|
core/java/com/android/internal/textservice/ITextServicesSessionListener.aidl \
|
|
core/java/com/android/internal/view/IInputContext.aidl \
|
|
core/java/com/android/internal/view/IInputContextCallback.aidl \
|
|
core/java/com/android/internal/view/IInputMethod.aidl \
|
|
core/java/com/android/internal/view/IInputMethodCallback.aidl \
|
|
core/java/com/android/internal/view/IInputMethodClient.aidl \
|
|
core/java/com/android/internal/view/IInputMethodManager.aidl \
|
|
core/java/com/android/internal/view/IInputMethodSession.aidl \
|
|
core/java/com/android/internal/widget/ILockSettings.aidl \
|
|
core/java/com/android/internal/widget/IRemoteViewsFactory.aidl \
|
|
core/java/com/android/internal/widget/IRemoteViewsAdapterConnection.aidl \
|
|
keystore/java/android/security/IKeyChainAliasCallback.aidl \
|
|
keystore/java/android/security/IKeyChainService.aidl \
|
|
location/java/android/location/ICountryDetector.aidl \
|
|
location/java/android/location/ICountryListener.aidl \
|
|
location/java/android/location/IGeocodeProvider.aidl \
|
|
location/java/android/location/IGpsStatusListener.aidl \
|
|
location/java/android/location/IGpsStatusProvider.aidl \
|
|
location/java/android/location/ILocationListener.aidl \
|
|
location/java/android/location/ILocationManager.aidl \
|
|
location/java/android/location/INetInitiatedListener.aidl \
|
|
location/java/com/android/internal/location/ILocationProvider.aidl \
|
|
media/java/android/media/IAudioService.aidl \
|
|
media/java/android/media/IAudioFocusDispatcher.aidl \
|
|
media/java/android/media/IAudioRoutesObserver.aidl \
|
|
media/java/android/media/IMediaScannerListener.aidl \
|
|
media/java/android/media/IMediaScannerService.aidl \
|
|
media/java/android/media/IRemoteControlClient.aidl \
|
|
media/java/android/media/IRemoteControlDisplay.aidl \
|
|
media/java/android/media/IRemoteVolumeObserver.aidl \
|
|
media/java/android/media/IRingtonePlayer.aidl \
|
|
telephony/java/com/android/internal/telephony/IPhoneStateListener.aidl \
|
|
telephony/java/com/android/internal/telephony/IPhoneSubInfo.aidl \
|
|
telephony/java/com/android/internal/telephony/ITelephony.aidl \
|
|
telephony/java/com/android/internal/telephony/ITelephonyRegistry.aidl \
|
|
telephony/java/com/android/internal/telephony/IWapPushManager.aidl \
|
|
wifi/java/android/net/wifi/IWifiManager.aidl \
|
|
wifi/java/android/net/wifi/p2p/IWifiP2pManager.aidl \
|
|
voip/java/android/net/sip/ISipSession.aidl \
|
|
voip/java/android/net/sip/ISipSessionListener.aidl \
|
|
voip/java/android/net/sip/ISipService.aidl
|
|
#
|
|
|
|
|
|
# FRAMEWORKS_BASE_JAVA_SRC_DIRS comes from build/core/pathmap.mk
|
|
LOCAL_AIDL_INCLUDES += $(FRAMEWORKS_BASE_JAVA_SRC_DIRS)
|
|
|
|
LOCAL_INTERMEDIATE_SOURCES := \
|
|
$(framework_res_source_path)/android/R.java \
|
|
$(framework_res_source_path)/android/Manifest.java \
|
|
$(framework_res_source_path)/com/android/internal/R.java
|
|
|
|
LOCAL_NO_STANDARD_LIBRARIES := true
|
|
LOCAL_JAVA_LIBRARIES := bouncycastle core core-junit ext
|
|
|
|
LOCAL_MODULE := framework
|
|
LOCAL_MODULE_CLASS := JAVA_LIBRARIES
|
|
|
|
# List of classes and interfaces which should be loaded by the Zygote.
|
|
LOCAL_JAVA_RESOURCE_FILES += $(LOCAL_PATH)/preloaded-classes
|
|
|
|
#LOCAL_JARJAR_RULES := $(LOCAL_PATH)/jarjar-rules.txt
|
|
|
|
LOCAL_DX_FLAGS := --core-library
|
|
|
|
include $(BUILD_JAVA_LIBRARY)
|
|
|
|
# Make sure that R.java and Manifest.java are built before we build
|
|
# the source for this library.
|
|
framework_res_R_stamp := \
|
|
$(call intermediates-dir-for,APPS,framework-res,,COMMON)/src/R.stamp
|
|
$(full_classes_compiled_jar): $(framework_res_R_stamp)
|
|
|
|
# Make sure that framework-res is installed when framework is.
|
|
$(LOCAL_INSTALLED_MODULE): | $(dir $(LOCAL_INSTALLED_MODULE))framework-res.apk
|
|
|
|
framework_built := $(call java-lib-deps,framework)
|
|
|
|
# AIDL files to be preprocessed and included in the SDK,
|
|
# relative to the root of the build tree.
|
|
# ============================================================
|
|
aidl_files := \
|
|
frameworks/base/core/java/android/accounts/IAccountManager.aidl \
|
|
frameworks/base/core/java/android/accounts/IAccountManagerResponse.aidl \
|
|
frameworks/base/core/java/android/accounts/IAccountAuthenticator.aidl \
|
|
frameworks/base/core/java/android/accounts/IAccountAuthenticatorResponse.aidl \
|
|
frameworks/base/core/java/android/app/Notification.aidl \
|
|
frameworks/base/core/java/android/app/PendingIntent.aidl \
|
|
frameworks/base/core/java/android/bluetooth/BluetoothDevice.aidl \
|
|
frameworks/base/core/java/android/bluetooth/BluetoothHealthAppConfiguration.aidl \
|
|
frameworks/base/core/java/android/content/ComponentName.aidl \
|
|
frameworks/base/core/java/android/content/Intent.aidl \
|
|
frameworks/base/core/java/android/content/IntentSender.aidl \
|
|
frameworks/base/core/java/android/content/PeriodicSync.aidl \
|
|
frameworks/base/core/java/android/content/SyncStats.aidl \
|
|
frameworks/base/core/java/android/content/res/Configuration.aidl \
|
|
frameworks/base/core/java/android/appwidget/AppWidgetProviderInfo.aidl \
|
|
frameworks/base/core/java/android/net/Uri.aidl \
|
|
frameworks/base/core/java/android/nfc/NdefMessage.aidl \
|
|
frameworks/base/core/java/android/nfc/NdefRecord.aidl \
|
|
frameworks/base/core/java/android/nfc/Tag.aidl \
|
|
frameworks/base/core/java/android/os/Bundle.aidl \
|
|
frameworks/base/core/java/android/os/DropBoxManager.aidl \
|
|
frameworks/base/core/java/android/os/ParcelFileDescriptor.aidl \
|
|
frameworks/base/core/java/android/os/ParcelUuid.aidl \
|
|
frameworks/base/core/java/android/view/KeyEvent.aidl \
|
|
frameworks/base/core/java/android/view/MotionEvent.aidl \
|
|
frameworks/base/core/java/android/view/Surface.aidl \
|
|
frameworks/base/core/java/android/view/WindowManager.aidl \
|
|
frameworks/base/core/java/android/widget/RemoteViews.aidl \
|
|
frameworks/base/core/java/com/android/internal/textservice/ISpellCheckerService.aidl \
|
|
frameworks/base/core/java/com/android/internal/textservice/ISpellCheckerSession.aidl \
|
|
frameworks/base/core/java/com/android/internal/textservice/ISpellCheckerSessionListener.aidl \
|
|
frameworks/base/core/java/com/android/internal/textservice/ITextServicesManager.aidl \
|
|
frameworks/base/core/java/com/android/internal/textservice/ITextServicesSessionListener.aidl \
|
|
frameworks/base/core/java/com/android/internal/view/IInputContext.aidl \
|
|
frameworks/base/core/java/com/android/internal/view/IInputMethod.aidl \
|
|
frameworks/base/core/java/com/android/internal/view/IInputMethodCallback.aidl \
|
|
frameworks/base/core/java/com/android/internal/view/IInputMethodClient.aidl \
|
|
frameworks/base/core/java/com/android/internal/view/IInputMethodManager.aidl \
|
|
frameworks/base/core/java/com/android/internal/view/IInputMethodSession.aidl \
|
|
frameworks/base/graphics/java/android/graphics/Bitmap.aidl \
|
|
frameworks/base/graphics/java/android/graphics/Rect.aidl \
|
|
frameworks/base/graphics/java/android/graphics/Region.aidl \
|
|
frameworks/base/location/java/android/location/Criteria.aidl \
|
|
frameworks/base/location/java/android/location/Geofence.aidl \
|
|
frameworks/base/location/java/android/location/Location.aidl \
|
|
frameworks/base/location/java/android/location/LocationRequest.aidl \
|
|
frameworks/base/location/java/com/android/internal/location/ProviderProperties.aidl \
|
|
frameworks/base/location/java/com/android/internal/location/ProviderRequest.aidl \
|
|
frameworks/base/telephony/java/android/telephony/ServiceState.aidl \
|
|
frameworks/base/telephony/java/com/android/internal/telephony/IPhoneSubInfo.aidl \
|
|
frameworks/base/telephony/java/com/android/internal/telephony/ITelephony.aidl \
|
|
|
|
gen := $(TARGET_OUT_COMMON_INTERMEDIATES)/framework.aidl
|
|
$(gen): PRIVATE_SRC_FILES := $(aidl_files)
|
|
ALL_SDK_FILES += $(gen)
|
|
$(gen): $(aidl_files) | $(AIDL)
|
|
@echo Aidl Preprocess: $@
|
|
$(hide) $(AIDL) --preprocess $@ $(PRIVATE_SRC_FILES)
|
|
|
|
# the documentation
|
|
# ============================================================
|
|
|
|
# TODO: deal with com/google/android/googleapps
|
|
packages_to_document := \
|
|
android \
|
|
javax/microedition/khronos
|
|
|
|
# Search through the base framework dirs for these packages.
|
|
# The result will be relative to frameworks/base.
|
|
fwbase_dirs_to_document := \
|
|
test-runner/src \
|
|
$(patsubst $(LOCAL_PATH)/%,%, \
|
|
$(wildcard \
|
|
$(foreach dir, $(FRAMEWORKS_BASE_JAVA_SRC_DIRS), \
|
|
$(addprefix $(dir)/, $(packages_to_document)) \
|
|
) \
|
|
) \
|
|
)
|
|
|
|
# include definition of libcore_to_document
|
|
include libcore/Docs.mk
|
|
|
|
# include definition of junit_to_document
|
|
include external/junit/Common.mk
|
|
|
|
non_base_dirs := \
|
|
../../external/apache-http/src/org/apache/http \
|
|
../opt/telephony/src/java/android/telephony \
|
|
../opt/telephony/src/java/android/telephony/gsm \
|
|
|
|
# These are relative to frameworks/base
|
|
dirs_to_check_apis := \
|
|
$(fwbase_dirs_to_document) \
|
|
$(non_base_dirs)
|
|
|
|
# These are relative to frameworks/base
|
|
# FRAMEWORKS_BASE_SUBDIRS comes from build/core/pathmap.mk
|
|
dirs_to_document := \
|
|
$(dirs_to_check_apis) \
|
|
$(addprefix ../../, $(FRAMEWORKS_SUPPORT_JAVA_SRC_DIRS))
|
|
|
|
# These are relative to frameworks/base
|
|
html_dirs := \
|
|
$(FRAMEWORKS_BASE_SUBDIRS) \
|
|
$(non_base_dirs)
|
|
|
|
# Common sources for doc check and api check
|
|
common_src_files := \
|
|
$(call find-other-html-files, $(html_dirs)) \
|
|
$(addprefix ../../libcore/, $(call libcore_to_document, $(LOCAL_PATH)/../../libcore)) \
|
|
$(addprefix ../../external/junit/, $(call junit_to_document, $(LOCAL_PATH)/../../external/junit))
|
|
|
|
# These are relative to frameworks/base
|
|
framework_docs_LOCAL_SRC_FILES := \
|
|
$(call find-other-java-files, $(dirs_to_document)) \
|
|
$(common_src_files)
|
|
|
|
# These are relative to frameworks/base
|
|
framework_docs_LOCAL_API_CHECK_SRC_FILES := \
|
|
$(call find-other-java-files, $(dirs_to_check_apis)) \
|
|
$(common_src_files)
|
|
|
|
# This is used by ide.mk as the list of source files that are
|
|
# always included.
|
|
INTERNAL_SDK_SOURCE_DIRS := $(addprefix $(LOCAL_PATH)/,$(dirs_to_document))
|
|
|
|
framework_docs_LOCAL_DROIDDOC_SOURCE_PATH := \
|
|
$(FRAMEWORKS_BASE_JAVA_SRC_DIRS)
|
|
|
|
framework_docs_LOCAL_INTERMEDIATE_SOURCES := \
|
|
$(framework_res_source_path)/android/R.java \
|
|
$(framework_res_source_path)/android/Manifest.java \
|
|
$(framework_res_source_path)/com/android/internal/R.java
|
|
|
|
framework_docs_LOCAL_JAVA_LIBRARIES := \
|
|
bouncycastle \
|
|
core \
|
|
ext \
|
|
framework \
|
|
mms-common \
|
|
telephony-common \
|
|
|
|
framework_docs_LOCAL_MODULE_CLASS := JAVA_LIBRARIES
|
|
framework_docs_LOCAL_DROIDDOC_HTML_DIR := docs/html
|
|
# The since flag (-since N.xml API_LEVEL) is used to add API Level information
|
|
# to the reference documentation. Must be in order of oldest to newest.
|
|
framework_docs_LOCAL_DROIDDOC_OPTIONS := \
|
|
-knowntags ./frameworks/base/docs/knowntags.txt \
|
|
-since ./frameworks/base/api/1.xml 1 \
|
|
-since ./frameworks/base/api/2.xml 2 \
|
|
-since ./frameworks/base/api/3.xml 3 \
|
|
-since ./frameworks/base/api/4.xml 4 \
|
|
-since ./frameworks/base/api/5.xml 5 \
|
|
-since ./frameworks/base/api/6.xml 6 \
|
|
-since ./frameworks/base/api/7.xml 7 \
|
|
-since ./frameworks/base/api/8.xml 8 \
|
|
-since ./frameworks/base/api/9.xml 9 \
|
|
-since ./frameworks/base/api/10.xml 10 \
|
|
-since ./frameworks/base/api/11.xml 11 \
|
|
-since ./frameworks/base/api/12.xml 12 \
|
|
-since ./frameworks/base/api/13.xml 13 \
|
|
-since ./frameworks/base/api/14.txt 14 \
|
|
-since ./frameworks/base/api/15.txt 15 \
|
|
-since ./frameworks/base/api/16.txt 16 \
|
|
-since ./frameworks/base/api/17.txt 17 \
|
|
-werror -hide 113 \
|
|
-overview $(LOCAL_PATH)/core/java/overview.html
|
|
|
|
framework_docs_LOCAL_ADDITIONAL_JAVA_DIR:= $(call intermediates-dir-for,JAVA_LIBRARIES,framework,,COMMON)
|
|
|
|
framework_docs_LOCAL_ADDITIONAL_DEPENDENCIES := \
|
|
frameworks/base/docs/knowntags.txt
|
|
|
|
sample_dir := development/samples
|
|
|
|
# the list here should match the list of samples included in the sdk samples package
|
|
# (see development/build/sdk.atree)
|
|
web_docs_sample_code_flags := \
|
|
-hdf android.hasSamples 1 \
|
|
-samplecode $(sample_dir)/AccelerometerPlay \
|
|
resources/samples/AccelerometerPlay "Accelerometer Play" \
|
|
-samplecode $(sample_dir)/ActionBarCompat \
|
|
resources/samples/ActionBarCompat "Action Bar Compatibility" \
|
|
-samplecode $(sample_dir)/AndroidBeamDemo \
|
|
resources/samples/AndroidBeamDemo "Android Beam Demo" \
|
|
-samplecode $(sample_dir)/ApiDemos \
|
|
resources/samples/ApiDemos "API Demos" \
|
|
-samplecode $(sample_dir)/Support4Demos \
|
|
resources/samples/Support4Demos "API 4+ Support Demos" \
|
|
-samplecode $(sample_dir)/Support13Demos \
|
|
resources/samples/Support13Demos "API 13+ Support Demos" \
|
|
-samplecode $(sample_dir)/BackupRestore \
|
|
resources/samples/BackupRestore "Backup and Restore" \
|
|
-samplecode $(sample_dir)/BluetoothChat \
|
|
resources/samples/BluetoothChat "Bluetooth Chat" \
|
|
-samplecode $(sample_dir)/BluetoothHDP \
|
|
resources/samples/BluetoothHDP "Bluetooth HDP Demo" \
|
|
-samplecode $(sample_dir)/BusinessCard \
|
|
resources/samples/BusinessCard "Business Card" \
|
|
-samplecode $(sample_dir)/ContactManager \
|
|
resources/samples/ContactManager "Contact Manager" \
|
|
-samplecode $(sample_dir)/CubeLiveWallpaper \
|
|
resources/samples/CubeLiveWallpaper "Cube Live Wallpaper" \
|
|
-samplecode $(sample_dir)/Home \
|
|
resources/samples/Home "Home" \
|
|
-samplecode $(sample_dir)/HoneycombGallery \
|
|
resources/samples/HoneycombGallery "Honeycomb Gallery" \
|
|
-samplecode $(sample_dir)/JetBoy \
|
|
resources/samples/JetBoy "JetBoy" \
|
|
-samplecode $(sample_dir)/KeyChainDemo \
|
|
resources/samples/KeyChainDemo "KeyChain Demo" \
|
|
-samplecode $(sample_dir)/LunarLander \
|
|
resources/samples/LunarLander "Lunar Lander" \
|
|
-samplecode $(sample_dir)/training/ads-and-ux \
|
|
resources/samples/training/ads-and-ux "Mobile Advertisement Integration" \
|
|
-samplecode $(sample_dir)/MultiResolution \
|
|
resources/samples/MultiResolution "Multiple Resolutions" \
|
|
-samplecode $(sample_dir)/training/multiscreen/newsreader \
|
|
resources/samples/newsreader "News Reader" \
|
|
-samplecode $(sample_dir)/NotePad \
|
|
resources/samples/NotePad "Note Pad" \
|
|
-samplecode $(sample_dir)/SpellChecker/SampleSpellCheckerService \
|
|
resources/samples/SpellChecker/SampleSpellCheckerService "Spell Checker Service" \
|
|
-samplecode $(sample_dir)/SpellChecker/HelloSpellChecker \
|
|
resources/samples/SpellChecker/HelloSpellChecker "Spell Checker Client" \
|
|
-samplecode $(sample_dir)/SampleSyncAdapter \
|
|
resources/samples/SampleSyncAdapter "Sample Sync Adapter" \
|
|
-samplecode $(sample_dir)/RandomMusicPlayer \
|
|
resources/samples/RandomMusicPlayer "Random Music Player" \
|
|
-samplecode $(sample_dir)/RenderScript \
|
|
resources/samples/RenderScript "RenderScript" \
|
|
-samplecode $(sample_dir)/SearchableDictionary \
|
|
resources/samples/SearchableDictionary "Searchable Dictionary v2" \
|
|
-samplecode $(sample_dir)/SipDemo \
|
|
resources/samples/SipDemo "SIP Demo" \
|
|
-samplecode $(sample_dir)/Snake \
|
|
resources/samples/Snake "Snake" \
|
|
-samplecode $(sample_dir)/SoftKeyboard \
|
|
resources/samples/SoftKeyboard "Soft Keyboard" \
|
|
-samplecode $(sample_dir)/Spinner \
|
|
resources/samples/Spinner "Spinner" \
|
|
-samplecode $(sample_dir)/SpinnerTest \
|
|
resources/samples/SpinnerTest "SpinnerTest" \
|
|
-samplecode $(sample_dir)/StackWidget \
|
|
resources/samples/StackWidget "StackView Widget" \
|
|
-samplecode $(sample_dir)/TicTacToeLib \
|
|
resources/samples/TicTacToeLib "TicTacToeLib" \
|
|
-samplecode $(sample_dir)/TicTacToeMain \
|
|
resources/samples/TicTacToeMain "TicTacToeMain" \
|
|
-samplecode $(sample_dir)/ToyVpn \
|
|
resources/samples/ToyVpn "Toy VPN Client" \
|
|
-samplecode $(sample_dir)/USB \
|
|
resources/samples/USB "USB" \
|
|
-samplecode $(sample_dir)/WeatherListWidget \
|
|
resources/samples/WeatherListWidget "Weather List Widget" \
|
|
-samplecode $(sample_dir)/WiFiDirectDemo \
|
|
resources/samples/WiFiDirectDemo "Wi-Fi Direct Demo" \
|
|
-samplecode $(sample_dir)/Wiktionary \
|
|
resources/samples/Wiktionary "Wiktionary" \
|
|
-samplecode $(sample_dir)/WiktionarySimple \
|
|
resources/samples/WiktionarySimple "Wiktionary (Simplified)" \
|
|
-samplecode $(sample_dir)/VoiceRecognitionService \
|
|
resources/samples/VoiceRecognitionService "Voice Recognition Service" \
|
|
-samplecode $(sample_dir)/VoicemailProviderDemo \
|
|
resources/samples/VoicemailProviderDemo "Voicemail Provider Demo" \
|
|
-samplecode $(sample_dir)/XmlAdapters \
|
|
resources/samples/XmlAdapters "XML Adapters" \
|
|
-samplecode $(sample_dir)/TtsEngine \
|
|
resources/samples/TtsEngine "Text To Speech Engine" \
|
|
-samplecode $(sample_dir)/training/device-management-policy \
|
|
resources/samples/training/device-management-policy "Device Management Policy"
|
|
|
|
|
|
## SDK version identifiers used in the published docs
|
|
# major[.minor] version for current SDK. (full releases only)
|
|
framework_docs_SDK_VERSION:=4.2
|
|
# release version (ie "Release x") (full releases only)
|
|
framework_docs_SDK_REL_ID:=1
|
|
|
|
framework_docs_LOCAL_DROIDDOC_OPTIONS += \
|
|
-hdf sdk.version $(framework_docs_SDK_VERSION) \
|
|
-hdf sdk.rel.id $(framework_docs_SDK_REL_ID) \
|
|
-hdf sdk.preview 0 \
|
|
|
|
# ==== the api stubs and current.xml ===========================
|
|
include $(CLEAR_VARS)
|
|
|
|
LOCAL_SRC_FILES:=$(framework_docs_LOCAL_API_CHECK_SRC_FILES)
|
|
LOCAL_INTERMEDIATE_SOURCES:=$(framework_docs_LOCAL_INTERMEDIATE_SOURCES)
|
|
LOCAL_JAVA_LIBRARIES:=$(framework_docs_LOCAL_JAVA_LIBRARIES)
|
|
LOCAL_MODULE_CLASS:=$(framework_docs_LOCAL_MODULE_CLASS)
|
|
LOCAL_DROIDDOC_SOURCE_PATH:=$(framework_docs_LOCAL_DROIDDOC_SOURCE_PATH)
|
|
LOCAL_DROIDDOC_HTML_DIR:=$(framework_docs_LOCAL_DROIDDOC_HTML_DIR)
|
|
LOCAL_ADDITIONAL_JAVA_DIR:=$(framework_docs_LOCAL_ADDITIONAL_JAVA_DIR)
|
|
LOCAL_ADDITIONAL_DEPENDENCIES:=$(framework_docs_LOCAL_ADDITIONAL_DEPENDENCIES)
|
|
|
|
LOCAL_MODULE := api-stubs
|
|
|
|
LOCAL_DROIDDOC_OPTIONS:=\
|
|
$(framework_docs_LOCAL_DROIDDOC_OPTIONS) \
|
|
-stubs $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/android_stubs_current_intermediates/src \
|
|
-api $(INTERNAL_PLATFORM_API_FILE) \
|
|
-nodocs
|
|
|
|
LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=build/tools/droiddoc/templates-sdk
|
|
|
|
LOCAL_UNINSTALLABLE_MODULE := true
|
|
|
|
include $(BUILD_DROIDDOC)
|
|
|
|
# $(gen), i.e. framework.aidl, is also needed while building against the current stub.
|
|
$(full_target): $(framework_built) $(gen)
|
|
$(INTERNAL_PLATFORM_API_FILE): $(full_target)
|
|
$(call dist-for-goals,sdk,$(INTERNAL_PLATFORM_API_FILE))
|
|
|
|
# ==== check javadoc comments but don't generate docs ========
|
|
include $(CLEAR_VARS)
|
|
|
|
LOCAL_SRC_FILES:=$(framework_docs_LOCAL_SRC_FILES)
|
|
LOCAL_INTERMEDIATE_SOURCES:=$(framework_docs_LOCAL_INTERMEDIATE_SOURCES)
|
|
LOCAL_JAVA_LIBRARIES:=$(framework_docs_LOCAL_JAVA_LIBRARIES)
|
|
LOCAL_MODULE_CLASS:=$(framework_docs_LOCAL_MODULE_CLASS)
|
|
LOCAL_DROIDDOC_SOURCE_PATH:=$(framework_docs_LOCAL_DROIDDOC_SOURCE_PATH)
|
|
LOCAL_DROIDDOC_HTML_DIR:=$(framework_docs_LOCAL_DROIDDOC_HTML_DIR)
|
|
LOCAL_ADDITIONAL_JAVA_DIR:=$(framework_docs_LOCAL_ADDITIONAL_JAVA_DIR)
|
|
LOCAL_ADDITIONAL_DEPENDENCIES:=$(framework_docs_LOCAL_ADDITIONAL_DEPENDENCIES)
|
|
|
|
LOCAL_MODULE := doc-comment-check
|
|
|
|
LOCAL_DROIDDOC_OPTIONS:=\
|
|
$(framework_docs_LOCAL_DROIDDOC_OPTIONS) \
|
|
-parsecomments
|
|
|
|
LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=build/tools/droiddoc/templates-sdk
|
|
|
|
LOCAL_UNINSTALLABLE_MODULE := true
|
|
|
|
include $(BUILD_DROIDDOC)
|
|
|
|
# $(gen), i.e. framework.aidl, is also needed while building against the current stub.
|
|
$(full_target): $(framework_built) $(gen)
|
|
|
|
# Run this for checkbuild
|
|
.PHONY: checkbuild
|
|
checkbuild: doc-comment-check-docs
|
|
|
|
# ==== static html in the pdk ==================================
|
|
include $(CLEAR_VARS)
|
|
|
|
LOCAL_INTERMEDIATE_SOURCES:=$(framework_docs_LOCAL_INTERMEDIATE_SOURCES)
|
|
LOCAL_JAVA_LIBRARIES:=$(framework_docs_LOCAL_JAVA_LIBRARIES)
|
|
LOCAL_MODULE_CLASS:=$(framework_docs_LOCAL_MODULE_CLASS)
|
|
LOCAL_DROIDDOC_SOURCE_PATH:=$(framework_docs_LOCAL_DROIDDOC_SOURCE_PATH)
|
|
LOCAL_DROIDDOC_HTML_DIR:=../../vendor/pdk/data/google/docs
|
|
LOCAL_ADDITIONAL_JAVA_DIR:=$(framework_docs_LOCAL_ADDITIONAL_JAVA_DIR)
|
|
LOCAL_ADDITIONAL_DEPENDENCIES:=$(framework_docs_LOCAL_ADDITIONAL_DEPENDENCIES)
|
|
|
|
LOCAL_MODULE := offline-pdk
|
|
|
|
LOCAL_DROIDDOC_OPTIONS:=\
|
|
-hdf android.whichdoc offline \
|
|
-hdf android.whichmodule $(LOCAL_MODULE)
|
|
|
|
LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=build/tools/droiddoc/templates-pdk
|
|
|
|
include $(BUILD_DROIDDOC)
|
|
|
|
|
|
# ==== static html in the sdk ==================================
|
|
include $(CLEAR_VARS)
|
|
|
|
LOCAL_SRC_FILES:=$(framework_docs_LOCAL_SRC_FILES)
|
|
LOCAL_INTERMEDIATE_SOURCES:=$(framework_docs_LOCAL_INTERMEDIATE_SOURCES)
|
|
LOCAL_JAVA_LIBRARIES:=$(framework_docs_LOCAL_JAVA_LIBRARIES)
|
|
LOCAL_MODULE_CLASS:=$(framework_docs_LOCAL_MODULE_CLASS)
|
|
LOCAL_DROIDDOC_SOURCE_PATH:=$(framework_docs_LOCAL_DROIDDOC_SOURCE_PATH)
|
|
LOCAL_DROIDDOC_HTML_DIR:=$(framework_docs_LOCAL_DROIDDOC_HTML_DIR)
|
|
LOCAL_ADDITIONAL_JAVA_DIR:=$(framework_docs_LOCAL_ADDITIONAL_JAVA_DIR)
|
|
LOCAL_ADDITIONAL_DEPENDENCIES:=$(framework_docs_LOCAL_ADDITIONAL_DEPENDENCIES)
|
|
|
|
LOCAL_MODULE := offline-sdk
|
|
|
|
LOCAL_DROIDDOC_OPTIONS:=\
|
|
$(framework_docs_LOCAL_DROIDDOC_OPTIONS) \
|
|
$(web_docs_sample_code_flags) \
|
|
-offlinemode \
|
|
-title "Android SDK" \
|
|
-proofread $(OUT_DOCS)/$(LOCAL_MODULE)-proofread.txt \
|
|
-todo $(OUT_DOCS)/$(LOCAL_MODULE)-docs-todo.html \
|
|
-sdkvalues $(OUT_DOCS) \
|
|
-hdf android.whichdoc offline
|
|
|
|
|
|
LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=build/tools/droiddoc/templates-sdk
|
|
|
|
include $(BUILD_DROIDDOC)
|
|
|
|
static_doc_index_redirect := $(out_dir)/index.html
|
|
$(static_doc_index_redirect): \
|
|
$(LOCAL_PATH)/docs/docs-documentation-redirect.html | $(ACP)
|
|
$(hide) mkdir -p $(dir $@)
|
|
$(hide) $(ACP) $< $@
|
|
|
|
$(full_target): $(static_doc_index_redirect)
|
|
$(full_target): $(framework_built)
|
|
|
|
# ==== docs for the web (on the google app engine server) =======================
|
|
include $(CLEAR_VARS)
|
|
|
|
LOCAL_SRC_FILES:=$(framework_docs_LOCAL_SRC_FILES)
|
|
LOCAL_INTERMEDIATE_SOURCES:=$(framework_docs_LOCAL_INTERMEDIATE_SOURCES)
|
|
LOCAL_STATIC_JAVA_LIBRARIES:=$(framework_docs_LOCAL_STATIC_JAVA_LIBRARIES)
|
|
LOCAL_JAVA_LIBRARIES:=$(framework_docs_LOCAL_JAVA_LIBRARIES)
|
|
LOCAL_MODULE_CLASS:=$(framework_docs_LOCAL_MODULE_CLASS)
|
|
LOCAL_DROIDDOC_SOURCE_PATH:=$(framework_docs_LOCAL_DROIDDOC_SOURCE_PATH)
|
|
LOCAL_DROIDDOC_HTML_DIR:=$(framework_docs_LOCAL_DROIDDOC_HTML_DIR)
|
|
LOCAL_ADDITIONAL_JAVA_DIR:=$(framework_docs_LOCAL_ADDITIONAL_JAVA_DIR)
|
|
LOCAL_ADDITIONAL_DEPENDENCIES:=$(framework_docs_LOCAL_ADDITIONAL_DEPENDENCIES)
|
|
|
|
LOCAL_MODULE := online-sdk
|
|
|
|
LOCAL_DROIDDOC_OPTIONS:= \
|
|
$(framework_docs_LOCAL_DROIDDOC_OPTIONS) \
|
|
$(web_docs_sample_code_flags) \
|
|
-toroot / \
|
|
-hdf android.whichdoc online \
|
|
-hdf template.showLanguageMenu true
|
|
|
|
LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=build/tools/droiddoc/templates-sdk
|
|
|
|
include $(BUILD_DROIDDOC)
|
|
|
|
# explicitly specify that online-sdk depends on framework-res and any generated docs
|
|
$(full_target): framework-res-package-target
|
|
|
|
# ==== docs that have all of the stuff that's @hidden =======================
|
|
include $(CLEAR_VARS)
|
|
|
|
LOCAL_SRC_FILES:=$(framework_docs_LOCAL_SRC_FILES)
|
|
LOCAL_INTERMEDIATE_SOURCES:=$(framework_docs_LOCAL_INTERMEDIATE_SOURCES)
|
|
LOCAL_JAVA_LIBRARIES:=$(framework_docs_LOCAL_JAVA_LIBRARIES) framework
|
|
LOCAL_MODULE_CLASS:=$(framework_docs_LOCAL_MODULE_CLASS)
|
|
LOCAL_DROIDDOC_SOURCE_PATH:=$(framework_docs_LOCAL_DROIDDOC_SOURCE_PATH)
|
|
LOCAL_DROIDDOC_HTML_DIR:=$(framework_docs_LOCAL_DROIDDOC_HTML_DIR)
|
|
LOCAL_ADDITIONAL_JAVA_DIR:=$(framework_docs_LOCAL_ADDITIONAL_JAVA_DIR)
|
|
LOCAL_ADDITIONAL_DEPENDENCIES:=$(framework_docs_LOCAL_ADDITIONAL_DEPENDENCIES)
|
|
|
|
LOCAL_MODULE := hidden
|
|
LOCAL_DROIDDOC_OPTIONS:=\
|
|
$(framework_docs_LOCAL_DROIDDOC_OPTIONS) \
|
|
-title "Android SDK - Including hidden APIs."
|
|
# -hidden
|
|
|
|
LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=build/tools/droiddoc/templates-sdk
|
|
|
|
include $(BUILD_DROIDDOC)
|
|
|
|
# Build ext.jar
|
|
# ============================================================
|
|
|
|
# NOTICE notes for non-obvious sections
|
|
# apache-http - covered by the Apache Commons section.
|
|
|
|
|
|
ext_dirs := \
|
|
../../external/nist-sip/java \
|
|
../../external/apache-http/src \
|
|
../../external/tagsoup/src \
|
|
../../external/libphonenumber/java/src
|
|
|
|
ext_src_files := $(call all-java-files-under,$(ext_dirs))
|
|
|
|
ext_res_dirs := \
|
|
../../external/libphonenumber/java/src
|
|
|
|
# ==== the library =========================================
|
|
include $(CLEAR_VARS)
|
|
|
|
LOCAL_SRC_FILES := $(ext_src_files)
|
|
|
|
LOCAL_NO_STANDARD_LIBRARIES := true
|
|
LOCAL_JAVA_LIBRARIES := core
|
|
LOCAL_JAVA_RESOURCE_DIRS := $(ext_res_dirs)
|
|
LOCAL_MODULE_TAGS := optional
|
|
LOCAL_MODULE := ext
|
|
|
|
LOCAL_DX_FLAGS := --core-library
|
|
|
|
include $(BUILD_JAVA_LIBRARY)
|
|
|
|
|
|
# Include subdirectory makefiles
|
|
# ============================================================
|
|
|
|
# If we're building with ONE_SHOT_MAKEFILE (mm, mmm), then what the framework
|
|
# team really wants is to build the stuff defined by this makefile.
|
|
ifeq (,$(ONE_SHOT_MAKEFILE))
|
|
include $(call first-makefiles-under,$(LOCAL_PATH))
|
|
endif
|