AOSP is working to support 64bit world for Android. This is investigation report regarding 64 bit support in Android Open Source Project. You can know how 64bit Android works and what is 32bit only process as of now.
Alphorm.com Formation VMware vSphere 7 : What's New 2/2Alphorm
Au cours de cette formation pratique, vous explorez les nouvelles fonctionnalités et améliorations de VMware vCenter Server 7.0 et VMware ESXi 7.0. Des scénarios de déploiement de cas d'utilisation réels et des présentations théoriques vous enseignent les compétences dont vous avez besoin pour implémenter et configurer efficacement VMware vSphere 7.
Cette formation est répartie en deux parties :
- vSphere 7 What’s New 1/2
- vSphere 7 What’s New 2/2
Alphorm.com Formation VMware vSphere 7 : What's New 2/2Alphorm
Au cours de cette formation pratique, vous explorez les nouvelles fonctionnalités et améliorations de VMware vCenter Server 7.0 et VMware ESXi 7.0. Des scénarios de déploiement de cas d'utilisation réels et des présentations théoriques vous enseignent les compétences dont vous avez besoin pour implémenter et configurer efficacement VMware vSphere 7.
Cette formation est répartie en deux parties :
- vSphere 7 What’s New 1/2
- vSphere 7 What’s New 2/2
Understanding Oracle RAC 12c Internals as presented during Oracle Open World 2013 with Mark Scardina.
This is part two of the Oracle RAC 12c "reindeer series" used for OOW13 Oracle RAC-related presentations.
Optimizer is the component of the DB2 SQL compiler responsible for selecting an optimal access plan for an SQL statement. The optimizer works by calculating the execution cost of many alternative access plans, and then choosing the one with the minimal estimated cost. Understanding how the optimizer works and knowing how to influence its behaviour can lead to improved query performance and better resource usage.
This presentation was created for the workshop delivered at the CASCON 2011 conference. Its aim is to introduce basic optimizer and related concepts, and to serve as a starting point for further study of the optimizer techniques.
Joget Workflow v5 is an open source platform to easily build enterprise web apps for cloud and mobile.
This guide provides a brief introduction, and more detailed information is available in the Knowledge Base at http://community.joget.org, as well as the official website at http://www.joget.org/
Ceph is a open source , software defined storage excellent and the only ( i would say ) storage backend as a cloud storage. Ceph is the Future of Storage. In this presentation i am explaining ceph and openstack briefly , you would definitely enjoy it.
ODA Backup Restore Utility & ODA Rescue Live DiskRuggero Citton
When applying maintenance to Oracle Database Appliance, it's best practice to back up the ODA system environment (local system boot disk). DBAs have procedures to backup and recover the database but it is also important that you are able to backup and recover the environment that runs the database. This is especially useful if you encounter an issue during patching; you can quickly restore the system disk back to the pre-patch state.
Group Replication went Generally Available end of 2016, it introduces a 'synchronous' active:active multi-master eplication, in addition to asynchronous and semi-synchronous replication, the latter 2 being available in in MySQL for longtime.
As with any new feature, and especially with introducing active:active multi-master replication, it takes a while before companies are adopting the software in production database environment.
For example, even though MySQL 5.7 has been GA for more than a year, adoption is only starting to increase recently.
We can, and should, expect the same from Group Replication. As with every release, bugs will be found, and with new features, best practises still need to formed out of practical experience.
After giving a short introduction on what Group Replication is, I will cover my experience so far in evaluating Group Replication.
Oracle Golden Gate Bidirectional ReplicationArun Sharma
Golden gate bidirectional replication is two-way unidirectional replication. Let us setup bi-directional replication for a single table from source to target.
Full article link is here: https://www.support.dbagenesis.com/post/oracle-golden-gate-bidirectional-replication
This document explains what is ARM Cortex-A53 (64bit ARMv8 procesor) errata from AOSP (Android Open Source Project) commit observation and what's going on for the errata as AOSP, what is expected action by each role; device manufacturers and application developers.
Understanding Oracle RAC 12c Internals as presented during Oracle Open World 2013 with Mark Scardina.
This is part two of the Oracle RAC 12c "reindeer series" used for OOW13 Oracle RAC-related presentations.
Optimizer is the component of the DB2 SQL compiler responsible for selecting an optimal access plan for an SQL statement. The optimizer works by calculating the execution cost of many alternative access plans, and then choosing the one with the minimal estimated cost. Understanding how the optimizer works and knowing how to influence its behaviour can lead to improved query performance and better resource usage.
This presentation was created for the workshop delivered at the CASCON 2011 conference. Its aim is to introduce basic optimizer and related concepts, and to serve as a starting point for further study of the optimizer techniques.
Joget Workflow v5 is an open source platform to easily build enterprise web apps for cloud and mobile.
This guide provides a brief introduction, and more detailed information is available in the Knowledge Base at http://community.joget.org, as well as the official website at http://www.joget.org/
Ceph is a open source , software defined storage excellent and the only ( i would say ) storage backend as a cloud storage. Ceph is the Future of Storage. In this presentation i am explaining ceph and openstack briefly , you would definitely enjoy it.
ODA Backup Restore Utility & ODA Rescue Live DiskRuggero Citton
When applying maintenance to Oracle Database Appliance, it's best practice to back up the ODA system environment (local system boot disk). DBAs have procedures to backup and recover the database but it is also important that you are able to backup and recover the environment that runs the database. This is especially useful if you encounter an issue during patching; you can quickly restore the system disk back to the pre-patch state.
Group Replication went Generally Available end of 2016, it introduces a 'synchronous' active:active multi-master eplication, in addition to asynchronous and semi-synchronous replication, the latter 2 being available in in MySQL for longtime.
As with any new feature, and especially with introducing active:active multi-master replication, it takes a while before companies are adopting the software in production database environment.
For example, even though MySQL 5.7 has been GA for more than a year, adoption is only starting to increase recently.
We can, and should, expect the same from Group Replication. As with every release, bugs will be found, and with new features, best practises still need to formed out of practical experience.
After giving a short introduction on what Group Replication is, I will cover my experience so far in evaluating Group Replication.
Oracle Golden Gate Bidirectional ReplicationArun Sharma
Golden gate bidirectional replication is two-way unidirectional replication. Let us setup bi-directional replication for a single table from source to target.
Full article link is here: https://www.support.dbagenesis.com/post/oracle-golden-gate-bidirectional-replication
This document explains what is ARM Cortex-A53 (64bit ARMv8 procesor) errata from AOSP (Android Open Source Project) commit observation and what's going on for the errata as AOSP, what is expected action by each role; device manufacturers and application developers.
Using the Android Native Development Kit (NDK)DroidConTLV
Android NDK is used to integrate C/C++ code into Android applications. Learn when and how to use it ; and what it implies to do so from development, integration within Eclipse and Android Studio, to distribution.
Presentation at Android Builders Summit 2012.
Based on the experience of working with ODM companies and SoC vendors, this session would discuss how to figure out the performance hotspot of certain Android devices and then improve in various areas including graphics and boot time. This session consists of the detailed components which seem to be independent from each other in traditional view. However, the situation changes a lot in Android system view since everything is coupled in a mass. Three frequently mentioned items in Android engineering are selected as the entry points: 2D/3D graphics, runtime, and boot time. Audience: Developers who work on Android system integration and platform enablement.
Slides from Android Builder's Summit 2014 in San Jose, CA
In this talk I describe the internal workings of the Android graphics stack from the Application layer down through the stack to pixels on the screen. It is a fairly complex journey, taking in two different 2D rendering engines, applications calling OpenGL ES directory, passing buffers on to the system compositor, SurfaceFlinger, and then down to the display controller or frame buffer.
Praktické postupy ochrany před DDoS útoky - Přednáška se bude zabývat postupy jak se chránit před DoS/DDoS útoky a to od nejnižší po nejvyšší vrstvu, od malých webů po korporátní sítě.
www.security-session.cz
Investigation report on 64 bit support and some of new features in aosp masterhidenorly
This is an investigation report on Android 64bit support and coming new features, which are working in AOSP (Android Open Source Project) master branch.
First Steps Developing Embedded Applications using Heterogeneous Multi-core P...Toradex
Read our blog for the latest on demystifying the development of embedded systems using Heterogeneous Multicore Processing architecture powered SoCs! This might provide you with the jump start you need for your development. https://www.toradex.com/blog/first-steps-developing-embedded-applications-using-heterogeneous-multicore-processors
[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha...BeMyApp
The Android Codefest Germany is a challenge on optimizing your existing Android NDK app on x86 processor or on building one.
It's still open until Sunday, November 24th, you can submit your app here: http://androidcodefest.bemyapp.com
LAS16-300: Mini Conference 2 Cortex-M Software - Device ConfigurationLinaro
LAS16-300: Mini Conference 2 RTOS-Zephyr - Device Configuration
Speakers: Andy Gross
Date: September 28, 2016
★ Session Description ★
SoC Vendors, board vendors, software middle layers, scripting languages, etc all need to have access to system configuration information (pin muxes, what sensors are on a system, what amount of memory, flash, etc, etc). We need a means to convey this in a vendor neutral mechanism but also one that is friendly for Cortex-M/constrained footprint devices. This session will be to discuss the topic, how its done today, what kinda tooling might exist from different vendors, what we could utilize (device tree) and what issues that creates.
★ Resources ★
Etherpad: pad.linaro.org/p/las16-300
Presentations & Videos: http://connect.linaro.org/resource/las16/las16-300/
★ Event Details ★
Linaro Connect Las Vegas 2016 – #LAS16
September 26-30, 2016
http://www.linaro.org
http://connect.linaro.org
SPACK: A Package Manager for Supercomputers, Linux, and MacOSinside-BigData.com
“HPC software is becoming increasingly complex. The space of possible build configurations is combinatorial, and existing package management tools do not handle these complexities well. Because of this, most HPC software is built by hand. This talk introduces “Spack“, an open-source tool for scientific package management which helps developers and cluster administrators avoid having to waste countless hours porting and rebuilding software. Spack uses concise package recipes written in Python to automate builds with arbitrary combinations of compilers, MPI versions, and dependency libraries. With Spack, users can rapidly install software without knowing how to build it; developers can efficiently manage automatic builds of tens or hundreds of dependency libraries; and HPC centers staff can deploy many versions of software for thousands of users.”
Watch the video: http://insidehpc.com/2017/04/spack-package-manager-supercomputers-linux-macos/
Learn more: https://spack.io/
and
http://www.hpcadvisorycouncil.com/events/2017/swiss-workshop/agenda.php
Sign up for our insideHPC Newsletter: http://insidehpc.com/newsletter
XGBoost Developer 1.3.0 released on April 13, 2021
- GGBoost Python Package, XGBoost R Package, XGBoost C++ API, XGBoost Parameters, XGBoost GPU support, XGBoost JVM Package, XGBoost.jl, XGBoost C Package
Share the Experience of Using Embedded Development BoardJian-Hong Pan
(Including Demo videos at end of the description)
Due to the pandemic in the past few years, lacking chips became one of the reasons that vendors cannot produce products. That affects industry, automotive and IT, etc. In addition, many countries propose new policies/acts which start to investigate the source of products recently. Therefore, keeping the flexibility of the usage of parts to maintain the robustness of productivity and service is an important skill. This talk will list the toolchains & debug tools for common chip architectures and share some development experience.
This talk will share how to use the open source toolchain and debug tools to develop and debug, then flash the program to the ARM Cortex-M development board. The same idea can be used on other chip’s development boards. Will have some examples for ARM Cortex-A and RISC-V 32 & 64 Bits environment. Besides, will share the experience of sending patches to the debug tool and co-working with upstream, too.
Demo Videos:
* Develop with Nuvoton's NuTiny-SDK-NUC472 https://www.youtube.com/watch?v=Yz9uw2_9KS8
* Develop with Longan Nano https://www.youtube.com/watch?v=IFqDM_GLUfo
* Boot Custom Linux Image on Raspberry Pi 4B https://www.youtube.com/watch?v=t3PjTtf5MvU
* Boot Linux on QEMU RISC-V 64 Bits VM https://www.youtube.com/watch?v=8c7zfvJYzSo
* Develop with Arduino Nano https://www.youtube.com/watch?v=sU7X9Q35hhY
The first version of eBPF hardware offload was merged into the Linux kernel in October 2016 and became part of Linux v4.9. For the last two years the project has been growing and evolving to integrate more closely with the core kernel infrastructure and enable more advanced use cases. This talk will explain the internals of the kernel architecture of the offload and how it allows seamless execution of unmodified eBPF datapaths in HW.
Similar to Investigation report on 64 bit support in Android Open Source Project (20)
Mobile App Development Company In Noida | Drona InfotechDrona Infotech
Looking for a reliable mobile app development company in Noida? Look no further than Drona Infotech. We specialize in creating customized apps for your business needs.
Visit Us For : https://www.dronainfotech.com/mobile-application-development/
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Artificia Intellicence and XPath Extension FunctionsOctavian Nadolu
The purpose of this presentation is to provide an overview of how you can use AI from XSLT, XQuery, Schematron, or XML Refactoring operations, the potential benefits of using AI, and some of the challenges we face.
Graspan: A Big Data System for Big Code AnalysisAftab Hussain
We built a disk-based parallel graph system, Graspan, that uses a novel edge-pair centric computation model to compute dynamic transitive closures on very large program graphs.
We implement context-sensitive pointer/alias and dataflow analyses on Graspan. An evaluation of these analyses on large codebases such as Linux shows that their Graspan implementations scale to millions of lines of code and are much simpler than their original implementations.
These analyses were used to augment the existing checkers; these augmented checkers found 132 new NULL pointer bugs and 1308 unnecessary NULL tests in Linux 4.4.0-rc5, PostgreSQL 8.3.9, and Apache httpd 2.2.18.
- Accepted in ASPLOS ‘17, Xi’an, China.
- Featured in the tutorial, Systemized Program Analyses: A Big Data Perspective on Static Analysis Scalability, ASPLOS ‘17.
- Invited for presentation at SoCal PLS ‘16.
- Invited for poster presentation at PLDI SRC ‘16.
Zoom is a comprehensive platform designed to connect individuals and teams efficiently. With its user-friendly interface and powerful features, Zoom has become a go-to solution for virtual communication and collaboration. It offers a range of tools, including virtual meetings, team chat, VoIP phone systems, online whiteboards, and AI companions, to streamline workflows and enhance productivity.
Do you want Software for your Business? Visit Deuglo
Deuglo has top Software Developers in India. They are experts in software development and help design and create custom Software solutions.
Deuglo follows seven steps methods for delivering their services to their customers. They called it the Software development life cycle process (SDLC).
Requirement — Collecting the Requirements is the first Phase in the SSLC process.
Feasibility Study — after completing the requirement process they move to the design phase.
Design — in this phase, they start designing the software.
Coding — when designing is completed, the developers start coding for the software.
Testing — in this phase when the coding of the software is done the testing team will start testing.
Installation — after completion of testing, the application opens to the live server and launches!
Maintenance — after completing the software development, customers start using the software.
Navigating the Metaverse: A Journey into Virtual Evolution"Donna Lenk
Join us for an exploration of the Metaverse's evolution, where innovation meets imagination. Discover new dimensions of virtual events, engage with thought-provoking discussions, and witness the transformative power of digital realms."
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Łukasz Chruściel
No one wants their application to drag like a car stuck in the slow lane! Yet it’s all too common to encounter bumpy, pothole-filled solutions that slow the speed of any application. Symfony apps are not an exception.
In this talk, I will take you for a spin around the performance racetrack. We’ll explore common pitfalls - those hidden potholes on your application that can cause unexpected slowdowns. Learn how to spot these performance bumps early, and more importantly, how to navigate around them to keep your application running at top speed.
We will focus in particular on tuning your engine at the application level, making the right adjustments to ensure that your system responds like a well-oiled, high-performance race car.
AI Genie Review: World’s First Open AI WordPress Website CreatorGoogle
AI Genie Review: World’s First Open AI WordPress Website Creator
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-genie-review
AI Genie Review: Key Features
✅Creates Limitless Real-Time Unique Content, auto-publishing Posts, Pages & Images directly from Chat GPT & Open AI on WordPress in any Niche
✅First & Only Google Bard Approved Software That Publishes 100% Original, SEO Friendly Content using Open AI
✅Publish Automated Posts and Pages using AI Genie directly on Your website
✅50 DFY Websites Included Without Adding Any Images, Content Or Doing Anything Yourself
✅Integrated Chat GPT Bot gives Instant Answers on Your Website to Visitors
✅Just Enter the title, and your Content for Pages and Posts will be ready on your website
✅Automatically insert visually appealing images into posts based on keywords and titles.
✅Choose the temperature of the content and control its randomness.
✅Control the length of the content to be generated.
✅Never Worry About Paying Huge Money Monthly To Top Content Creation Platforms
✅100% Easy-to-Use, Newbie-Friendly Technology
✅30-Days Money-Back Guarantee
See My Other Reviews Article:
(1) TubeTrivia AI Review: https://sumonreview.com/tubetrivia-ai-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
#AIGenieApp #AIGenieBonus #AIGenieBonuses #AIGenieDemo #AIGenieDownload #AIGenieLegit #AIGenieLiveDemo #AIGenieOTO #AIGeniePreview #AIGenieReview #AIGenieReviewandBonus #AIGenieScamorLegit #AIGenieSoftware #AIGenieUpgrades #AIGenieUpsells #HowDoesAlGenie #HowtoBuyAIGenie #HowtoMakeMoneywithAIGenie #MakeMoneyOnline #MakeMoneywithAIGenie
Transform Your Communication with Cloud-Based IVR SolutionsTheSMSPoint
Discover the power of Cloud-Based IVR Solutions to streamline communication processes. Embrace scalability and cost-efficiency while enhancing customer experiences with features like automated call routing and voice recognition. Accessible from anywhere, these solutions integrate seamlessly with existing systems, providing real-time analytics for continuous improvement. Revolutionize your communication strategy today with Cloud-Based IVR Solutions. Learn more at: https://thesmspoint.com/channel/cloud-telephony
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeAftab Hussain
Understanding variable roles in code has been found to be helpful by students
in learning programming -- could variable roles help deep neural models in
performing coding tasks? We do an exploratory study.
- These are slides of the talk given at InteNSE'23: The 1st International Workshop on Interpretability and Robustness in Neural Software Engineering, co-located with the 45th International Conference on Software Engineering, ICSE 2023, Melbourne Australia
GraphSummit Paris - The art of the possible with Graph TechnologyNeo4j
Sudhir Hasbe, Chief Product Officer, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Crescat
Crescat is industry-trusted event management software, built by event professionals for event professionals. Founded in 2017, we have three key products tailored for the live event industry.
Crescat Event for concert promoters and event agencies. Crescat Venue for music venues, conference centers, wedding venues, concert halls and more. And Crescat Festival for festivals, conferences and complex events.
With a wide range of popular features such as event scheduling, shift management, volunteer and crew coordination, artist booking and much more, Crescat is designed for customisation and ease-of-use.
Over 125,000 events have been planned in Crescat and with hundreds of customers of all shapes and sizes, from boutique event agencies through to international concert promoters, Crescat is rigged for success. What's more, we highly value feedback from our users and we are constantly improving our software with updates, new features and improvements.
If you plan events, run a venue or produce festivals and you're looking for ways to make your life easier, then we have a solution for you. Try our software for free or schedule a no-obligation demo with one of our product specialists today at crescat.io
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
3. 64bit support will come! (AOSP)
● Most of things are going public on master
branch of AOSP (Android Open Source Project).
4. Executive Summary
● Both 32bit and 64bit executions on 64bit device
○ x86_64, arm64(ARMv8), mips64
● Using ART
○ NOT Dalvik
● Some of daemon seems to be running as 32bit.
○ But seems to try to support 64bit.
● No impact on Java application (of course)
5. AOSP is working to support 64bit! (1/2)
● build
● art
○ no support on dakvik
● system
○ debuggered
○ cutils/atomic
○ libpixelflinger
○ toolbox
○ backtrace
● bionic
● ndk
● sdk
○ opengl on emu
● external (since before)
○ chromium_org/../v8
○ clang, llvm
○ valgrind
○ linux-tools-perf
○ libvpx
6. AOSP is working to support 64bit! (2/2)
● frameworks/*
○ av/
■ services/
● audioflinger
○ native/
■ binder
■ opengl
○ compile/*, rs/*
(renderscipt)
● hardware/
○ libhardware/
■ hardware.c
● libcore/
○ luni/
■ java_math_Native
BN.cpp
7. Architecture of 64bit support
64bit capable CPU (ARMv8, x86-64, MIPS64)
64bit kernel
Zygote
init
binder (64) Device drivers
Media server
Applications
(32bits)
Applications
(32bits)
Applications
(32bits)
Zygote64
Application
(64bits)
Application
(64bits)
Application
(64bits)
Userspace
Kernel
HW (CPU)
Support both 32/64bit process
Some of daemon will execute as
32bit process.
8. C&C view: Runtime architecture
Applications
(32bits)
Application
(64bits)
binder
System
Services
binder
HAL
OpenGL
(32bit)
OpenGL
(64bit)
call-return
call-return
call-return,
etc.
hardware/libhardware/hardware.c has support
to choose /system/lib or /system/lib64
System server executes on 32bit or 32bit
(single instance in system)
9. Seems to support only LP64
ILP32 LP64
short 16 16
int 32 32
long 32 64
long long 64 64
pointer 32 64
In “frameworks/base/cmds/app_process/app_main.cpp”
#if defined(__LP64__)
static const char ABI_LIST_PROPERTY[] = "ro.product.cpu.abilist64";
static const char ZYGOTE_NICE_NAME[] = "zygote64";
#else
static const char ABI_LIST_PROPERTY[] = "ro.product.cpu.abilist32";
static const char ZYGOTE_NICE_lNAME[] = "zygote";
#endif
Most of common 64bit support is regarding
long & pointer (reinterpret_cast and format
string in LOG*, etc.)
14. Build: Blacklist for 64bit
● Blacklist specifies build target with 32bit
○ After fixing issue on 64bit, it seems to be removed
from the list.
○ At build/core/main.mk
■ L95
include $(BUILD_SYSTEM)/64_bit_blacklist.mk
15. Build: Options to specify 32bit only
● LOCAL_32_BIT_ONLY == true
○ Build 32bit binary only which is specified by
LOCAL_MODULE in Android.mk
16. 32bit only process (not on 64bit as of now)
frameworks/av/cmds/screenrecord/Android.mk:43:LOCAL_32_BIT_ONLY := true
frameworks/av/cmds/stagefright/Android.mk:26:LOCAL_32_BIT_ONLY := true
frameworks/av/drm/drmserver/Android.mk:42:LOCAL_32_BIT_ONLY := true
frameworks/av/media/libmediaplayerservice/Android.mk:57:LOCAL_32_BIT_ONLY := true
frameworks/av/media/mediaserver/Android.mk:38:LOCAL_32_BIT_ONLY := true
frameworks/av/services/medialog/Android.mk:11:LOCAL_32_BIT_ONLY := true
frameworks/av/services/audioflinger/Android.mk:52:LOCAL_32_BIT_ONLY := true
frameworks/base/cmds/bootanimation/Android.mk:28:LOCAL_32_BIT_ONLY := true
frameworks/base/packages/services/PacProcessor/jni/Android.mk:38:LOCAL_32_BIT_ONLY := true
frameworks/native/services/surfaceflinger/Android.mk:124:LOCAL_32_BIT_ONLY := true
frameworks/rs/driver/runtime/Android.mk:105:LOCAL_32_BIT_ONLY := true
17. Build: Indicator to build 32/64
● LOCAL_MULTILIB
○ ”32”: Build 32bit library ONLY
○ “both”: build both 64bit & 32bit libraries.
○ This is set by TARGET_SUPPORTS_64_BIT_APPS
, TARGET_SUPPORTS_32_BIT_APPS and
TARGET_IS_64BIT
18. Build: Detail of LOCAL_MULTILIB
# We don't automatically set up rules to build packages for both
# TARGET_ARCH and TARGET_2ND_ARCH.
# By default, an package is built for TARGET_ARCH.
# To build it for TARGET_2ND_ARCH in a 64bit product, use "LOCAL_MULTILIB := 32".
..snip..
ifeq ($(TARGET_SUPPORTS_32_BIT_APPS)|$(TARGET_SUPPORTS_64_BIT_APPS),
true|true)
# packages default to building for either architecture,
# the preferred if its supported, otherwise the non-preferred.
else ifeq ($(TARGET_SUPPORTS_64_BIT_APPS),true)
# only 64-bit apps supported
ifeq ($(filter $(my_module_multilib),64 both first),$(my_module_multilib))
# if my_module_multilib was 64, both, first, or unset, build for 64-bit
my_module_multilib := 64
else
# otherwise don't build this app
my_module_multilib := none
endif
else
# only 32-bit apps supported
ifeq ($(filter $(my_module_multilib),32 both),$(my_module_multilib))
# if my_module_multilib was 32, both, or unset, build for 32-bit
my_module_multilib := 32
else ifeq ($(my_module_multilib),first)
ifndef TARGET_IS_64_BIT
# if my_module_multilib was first and this is a 32-bit build, build for
# 32-bit
my_module_multilib := 32
else
# if my_module_multilib was first and this is a 64-bit build, don't build
# this app
my_module_multilib := none
endif
else
# my_module_mulitlib was 64 or none, don't build this app
my_module_multilib := none
endif
endif
19. Deploy: /system/lib64 and /system/lib
In “build/core/envsetup.mk”
ifneq ($(filter %64,$(TARGET_ARCH)),)
# /system/lib always contains 32-bit libraries,
# and /system/lib64 (if present) always contains 64-bit libraries.
TARGET_OUT_SHARED_LIBRARIES := $(TARGET_OUT)/lib64
else
TARGET_OUT_SHARED_LIBRARIES := $(TARGET_OUT)/lib
endif
..snip..
# Out for TARGET_2ND_ARCH
TARGET_2ND_ARCH_VAR_PREFIX := 2ND_
TARGET_2ND_ARCH_MODULE_SUFFIX := _32
..snip..
$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SHARED_LIBRARIES := $(TARGET_OUT)/lib
..snip..
20. Deploy : /system/lib{64}/apkname
Support per-package lib dirs for bundled apps
Bundled apps can now use /system/lib/apkname or /system/lib64/apkname in addition to
the (globally shared) /system/lib and /system/lib64 directories. Note that when an app is
updated post hoc the update APK will look to its normal library install directory in
/data/data/[packagename]/lib, so such updates must include *all* needed libraries -- the
private /system/lib/apkname dir will not be in the path following such an update.
"apkname" here is the base name of the physical APK that holds the package's code.
For example, if a 32-bit package is resident on disk as /system/priv-app/SettingsProvider.
apk then its app-specific lib directory will be /system/lib/SettingsProvider
21. Runtime : package manager
Package manager changes for dual zygote stack.
● Pass down the app's instruction set to dexopt so that it can compile the dex file for
the right architecture.
● Also pass down the app's instruction set to rmdex, movedex and getSize so that
they can construct the cache file location properly.
● Temporarily compile "system" jars such as am,wm etc. for both architectures. A
follow up change will ensure that they're compiled only for one architecture (the
same arch. as the system server).
● Java "shared" libraries are now compiled for the right architecture when an app
requires them.
● Improve the app native library ABI detection to account for system apps installed in
/system/lib{64}/<packagename> and also handle sdcard and forward locked apps
correctly.
22. Allow 32bit or 64/32bit (64bit only might not be allowed)
In build/core/config.mk
# If for a 64bit build we have a 2nd architecture but the zygote isn't 64bit,
# assume DEX2OAT should DEXPREOPT for the 2nd architecture.
ifdef TARGET_2ND_ARCH
ifeq (true,$(TARGET_IS_64_BIT))
ifeq ($(filter ro.zygote=zygote64,$(PRODUCT_DEFAULT_PROPERTY_OVERRIDES)),)
DEX2OAT_TARGET_ARCH := $(TARGET_2ND_ARCH)
DEX2OAT_TARGET_CPU_VARIANT := $(TARGET_2ND_CPU_VARIANT)
endif
endif
endif
23. init: zygote64 kicks system server
In system/core/rootdir/init.zygote64.rc
service zygote /system/bin/app_process64 -Xzygote /system/bin --zygote --
start-system-server
class main
socket zygote stream 660 root system
onrestart write /sys/android_power/request_state wake
onrestart write /sys/power/state on
onrestart restart media
onrestart restart netd
24. System server executes on Zygote32 or Zygote64
In system/core/rootdir/init.zygote32_64.rc (not used by build/*)
service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server --socket-name=zygote
class main
socket zygote stream 660 root system
onrestart write /sys/android_power/request_state wake
onrestart write /sys/power/state on
onrestart restart media
onrestart restart netd
service zygote_secondary /system/bin/app_process64 -Xzygote /system/bin --zygote --socket-name=zygote_secondary
class main
socket zygote_secondary stream 660 root system
onrestart restart zygote