$(call add-clean-step, rm -rf $(OUT_DIR)/target/product/*/obj/SHARED_LIBRARIES/libjni_andpyime_intermediates)
$(call add-clean-step, rm -rf $(OUT_DIR)/target/product/*/obj/SHARED_LIBRARIES/share)
$(call add-clean-step, rm -rf $(OUT_DIR)/target/product/*/obj/SHARED_LIBRARIES/libwebcore_intermediates)
+$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates)
# ************************************************
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
+ /* Adding the word ABSOLUTE below, so that the _stack below won't float
+ into a random section. If _stack is not absolutely with .stack section,
+ we saw that sometimes _stack got inserted into the .debug_frame section
+ because it's processed by the linker at that moment. As a result, _stack
+ symbol will get wrongly moved and gelf_update_symshndx() will return
+ invalid data. */
.stack 0x80000 :
{
- _stack = .;
+ _stack = ABSOLUTE(.);
*(.stack)
}
.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
+ /* Adding the word ABSOLUTE below, so that the _stack below won't float
+ into a random section. If _stack is not absolutely with .stack section,
+ we saw that sometimes _stack got inserted into the .debug_frame section
+ because it's processed by the linker at that moment. As a result, _stack
+ symbol will get wrongly moved and gelf_update_symshndx() will return
+ invalid data. */
.stack 0x80000 :
{
- _stack = .;
+ _stack = ABSOLUTE(.);
*(.stack)
}
.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }
ifeq ($(TARGET_BUILD_VARIANT),eng)
tags_to_install := user debug eng
+ # Don't require the setup wizard on eng builds
+ ADDITIONAL_BUILD_PROPERTIES := $(filter-out ro.setupwizard.mode=%,\
+ $(call collapse-pairs, $(ADDITIONAL_BUILD_PROPERTIES)))
endif
## tests ##
CtsContentTestCases \
CtsDatabaseTestCases \
CtsGraphicsTestCases \
+ CtsHardwareTestCases \
CtsLocationTestCases \
CtsOsTestCases \
+ CtsPermissionTestCases \
CtsProviderTestCases \
CtsTextTestCases \
CtsUtilTestCases \
$(CORE_VM_TEST_PLAN): PRIVATE_CUSTOM_TOOL := java $(PRIVATE_JAVAOPTS) \
-classpath $(PRIVATE_CLASSPATH) \
$(PRIVATE_PARAMS) CollectAllTests $(CORE_VM_TEST_PLAN) \
- cts/tests/vm-tests/AndroidManifest.xml dot.junit.AllJunitHostTests
+ cts/tests/vm-tests/AndroidManifest.xml dot.junit.AllJunitHostTests cts/tools/vm-tests/Android.mk
# Please see big comment above on why this line depends on javalib.jar instead of classes.jar
$(CORE_VM_TEST_PLAN): vm-tests $(HOST_OUT_JAVA_LIBRARIES)/descGen.jar $(CORE_INTERMEDIATES)/javalib.jar $(VMTESTS_INTERMEDIATES)/android.core.vm-tests.jar $(TESTS_INTERMEDIATES)/javalib.jar $(cts_dir)/all_cts_files_stamp | $(ACP)
@echo "Generate the CTS vm-test plan: $@"
$(ACP) -fv $(VMTESTS_INTERMEDIATES)/android.core.vm-tests.jar $(PRIVATE_DIR)/repository/testcases/android.core.vm-tests.jar
# Generate the default test plan for User.
-$(DEFAULT_TEST_PLAN): $(cts_dir)/all_cts_files_stamp $(cts_tools_src_dir)/utils/genDefaultTestPlan.sh
+$(DEFAULT_TEST_PLAN): $(cts_dir)/all_cts_files_stamp $(cts_tools_src_dir)/utils/genDefaultTestPlan.sh $(CORE_VM_TEST_PLAN) $(CORE_TEST_PLAN)
$(hide) bash $(cts_tools_src_dir)/utils/genDefaultTestPlan.sh cts/tests/tests/ \
$(PRIVATE_DIR) $(TMP_DIR) $(TOP) $(TARGET_COMMON_OUT_ROOT) $(OUT_DIR)
var NAV_PREF_PANELS = "panels";
var nav_pref;
var toRoot;
-
+var isMobile = false; // true if mobile, so we can adjust some layout
function addLoadEvent(newfun) {
var current = window.onload;
}
}
+var agent = navigator['userAgent'];
+if ((agent.indexOf("Mobile") != -1) ||
+ (agent.indexOf("BlackBerry") != -1) ||
+ (agent.indexOf("Mini") != -1)) {
+ isMobile = true;
+ addLoadEvent(mobileSetup);
+}
+
window.onresize = resizeAll;
+function mobileSetup() {
+ $("body").css({'overflow':'auto'});
+ $("html").css({'overflow':'auto'});
+ $("#body-content").css({'position':'relative', 'top':'0'});
+ $("#doc-content").css({'overflow':'visible', 'border-left':'3px solid #DDD'});
+ $("#side-nav").css({'padding':'0'});
+ $("#nav-tree").css({'overflow-y': 'auto'});
+}
+
function setToRoot(root) {
toRoot = root;
// note: toRoot also used by carousel.js
}
function init() {
- $("#resize-packages-nav").resizable({handles: "s", resize: function(e, ui) { resizeHeight(); } });
- $(".side-nav-resizable").resizable({handles: "e", resize: function(e, ui) { resizeWidth(); } });
-
$("#side-nav").css({position:"absolute",left:0});
content = $("#doc-content");
resizePackagesNav = $("#resize-packages-nav");
} else if (location.href.indexOf("/guide/") != -1) {
var cookiePath = "guide_";
}
- var cookieWidth = getCookie(cookiePath+'width');
- var cookieHeight = getCookie(cookiePath+'height');
- if (cookieWidth) {
- restoreWidth(cookieWidth);
- } else if ($(".side-nav-resizable").length) {
- resizeWidth();
- }
- if (cookieHeight) {
- restoreHeight(cookieHeight);
- } else {
- resizeHeight();
+
+ if (!isMobile) {
+ $("#resize-packages-nav").resizable({handles: "s", resize: function(e, ui) { resizeHeight(); } });
+ $(".side-nav-resizable").resizable({handles: "e", resize: function(e, ui) { resizeWidth(); } });
+ var cookieWidth = getCookie(cookiePath+'width');
+ var cookieHeight = getCookie(cookiePath+'height');
+ if (cookieWidth) {
+ restoreWidth(cookieWidth);
+ } else if ($(".side-nav-resizable").length) {
+ resizeWidth();
+ }
+ if (cookieHeight) {
+ restoreHeight(cookieHeight);
+ } else {
+ resizeHeight();
+ }
}
if (devdocNav.length) { // only dev guide and sdk
}
function resizeAll() {
- resizeHeight();
- if ($(".side-nav-resizable").length) {
- resizeWidth();
+ if (!isMobile) {
+ resizeHeight();
+ if ($(".side-nav-resizable").length) {
+ resizeWidth();
+ }
}
}
</div><!-- end swapper -->
</div> <!-- end side-nav -->
<script>
- $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
- chooseDefaultNav();
- if ($("#nav-tree").is(':visible')) init_navtree("nav-tree", "<?cs var:toroot ?>", NAVTREE_DATA);
- else {
- addLoadEvent(function() {
- scrollIntoView("packages-nav");
- scrollIntoView("classes-nav");
- });
+ if (!isMobile) {
+ $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
+ chooseDefaultNav();
+ if ($("#nav-tree").is(':visible')) init_navtree("nav-tree", "<?cs var:toroot ?>", NAVTREE_DATA);
+ else {
+ addLoadEvent(function() {
+ scrollIntoView("packages-nav");
+ scrollIntoView("classes-nav");
+ });
+ }
+ $("#swapper").css({borderBottom:"2px solid #aaa"});
+ } else {
+ swapNav(); // tree view should be used on mobile
}
- $("#swapper").css({borderBottom:"2px solid #aaa"});
</script><?cs
/def ?>