This document provides an overview of debugging and development tools for the Android platform. It discusses setting up the development environment in Android Studio and explores tools for observing system behavior like logcat and dumpsys. Symbolic debugging with gdb and gdbserver is covered as well as dynamic tracing tools like ftrace. The document concludes with suggestions for benchmarking and performance analysis.
While Android’s use in mobile and embedded systems is now common, details about how to debug and develop in its internals are still hard to come by. This session will cover the tools, techniques and hacks that developers can use to debug difficult problems within the Android stack.
View this presentation on YouTube:
https://www.youtube.com/watch?v=vnoY9WwEwIc
While Android’s use in mobile and embedded systems is now common, details about how to debug and develop in its internals are still hard to come by. This session will cover the tools, techniques and hacks that developers can use to debug difficult problems within the Android stack.
View this presentation on YouTube:
https://www.youtube.com/watch?v=vnoY9WwEwIc
This paper attempts to look behind the wheels of android and keeping special focus on custom rom’s and basically check for security misconfiguration’s which could yield to device compromise, which may result in malware infection or data theft.
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operate—or are planning to operate—broader deployments at their institution.
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
Atelier - Innover avec l’IA Générative et les graphes de connaissancesNeo4j
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Allez au-delà du battage médiatique autour de l’IA et découvrez des techniques pratiques pour utiliser l’IA de manière responsable à travers les données de votre organisation. Explorez comment utiliser les graphes de connaissances pour augmenter la précision, la transparence et la capacité d’explication dans les systèmes d’IA générative. Vous partirez avec une expérience pratique combinant les relations entre les données et les LLM pour apporter du contexte spécifique à votre domaine et améliorer votre raisonnement.
Amenez votre ordinateur portable et nous vous guiderons sur la mise en place de votre propre pile d’IA générative, en vous fournissant des exemples pratiques et codés pour démarrer en quelques minutes.
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/
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.
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.
Check out the webinar slides to learn more about how XfilesPro transforms Salesforce document management by leveraging its world-class applications. For more details, please connect with sales@xfilespro.com
If you want to watch the on-demand webinar, please click here: https://www.xfilespro.com/webinars/salesforce-document-management-2-0-smarter-faster-better/
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
Software Engineering, Software Consulting, Tech Lead, Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Transaction, Spring MVC, OpenShift Cloud Platform, Kafka, REST, SOAP, LLD & HLD.
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
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
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!
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/
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."
2. 2
These slides are made available to you under a Creative Commons Share-
Alike 3.0 license. The full terms of this license are here:
https://creativecommons.org/licenses/by-sa/3.0/
Attribution requirements and misc., PLEASE READ:
● This slide must remain as-is in this specific location (slide #2), everything
else you are free to change; including the logo :-)
● Use of figures in other documents must feature the below “Originals at”
URL immediately under that figure and the below copyright notice where
appropriate.
● You are free to fill in the “Delivered and/or customized by” space on the
right as you see fit.
● You are FORBIDEN from using the default “About” slide as-is or any of its
contents.
●
You are FORBIDEN from using any content provided by 3rd
parties without
the EXPLICIT consent from those parties.
(C) Copyright 2013-2015, Opersys inc.
These slides created by: Karim Yaghmour
Originals at: www.opersys.com/community/docs
Delivered and/or customized by
3. 3
About
●
Author of:
●
Introduced Linux Trace Toolkit in 1999
●
Originated Adeos and relayfs (kernel/relay.c)
●
Ara Android Arch Oversight
●
Training, Custom Dev, Consulting, ...
4. 4
Agenda
1. Architecture Basics
2. Development environment
3. Observing and monitoring
4. Interfacing with the framework
5. Working with the AOSP sources
6. Symbolic debugging
7. Detailed dynamic data collection
8. Benchmarking
9. Summing up
17. 17
2.3.1. Preparation
● AOSP Basics:
● Get AOSP ... from Google or otherwise
● Extract if needed
● Configure, build, etc.
● Android Studio:
● Get Android Studio from developer.android.com
● Extract
● Start and update and if needed
18. 18
● Creating AOSP project files for Studio:
[aosp]$ make idegen && development/tools/idegen/idegen.sh
● Sometimes you also need to fix an issue with
"res.java":
[aosp]$ cd out/target/product/generic/obj/GYP/shared_intermediates
[aosp]$ mv res.java res.j && croot
19. 19
2.3.2. Project importing
● Start Android Studio:
● Choose "Open an Existing Android Studio Project"
● Select android.ipr from AOSP
● Let it finish indexing
● To force framework detection -- if no auto-detect:
● Close Studio
● Restart Studio
● Click on "Framework Detected" bubble
21. 21
2.3.3. Browsing the sources
● Right-click object type to be taken to declaration
● Browse classes through “Structure”
● Right-click "Find Usages"
● Toggle open files (Alt-left, Alt-right)
● Many other shortcuts, see:
https://developer.android.com/sdk/installing/studio-tips.htm
● Issues:
● Can't compile with Studio ... still need “make”
● For Java only
29. 29
4. Interfacing With the Framework
● start / stop
● service call
● am
● pm
● wm
● svc
● monkey
● setprop
● raidl
30. 30
5. Working with the AOSP Sources
● You really need to check build/envsetup.sh
● Some tricks:
● godir
● croot
● mm
● m
● jgrep
● cgrep
● resgrep
● It takes time to wrap your head around the tree
32. 32
6.1. Studio / Monitor integration
● Beware of libgail18 in Ubuntu
● Start Studio
● Start Monitor
● ("Android" icon on toolbar)
● Each process has a separate host-side socket
● Select the process you want to debug:
● It'll get port 8700
33. 33
● Go back to Studio:
● Run->Edit Configurations->"+"
● Remote->Port: 8700
● Apply & Debug
● Go back to Monitor:
● Check that the little green bug is beside your process
in ddms
● You're now ready to debug
35. 35
6.2. Debugging multiple processes
● Select process in Monitor
● Go back to Studio and start a new debugging
session
● Each process will now have a green bug beside
it
36. 36
6.4. gdbserver - target side
● AOSP already takes care of debug:
● “-g” flag added to all native binaries
● Unstripped binaries in out/target/product/.../symbols/...
● Attaching to running process
# gdbserver attach locahost:2345 30
● Start app for debugging with gdbserver prepended
# gdbserver localhost:2345 service list
● Forward the port on the host:
$ adb forward tcp:2345 tcp:2345
37. 37
6.5. gdb - host side
● Load file **FIRST** and then attach on host side
$ prebuilts/gcc/linuxx86/arm/armeabi4.7/bin/armeabigdb
GNU gdb (GDB) 7.3.1gg2
Copyright (C) 2011 Free Software Foundation, Inc.
...
(gdb) file out/target/product/generic/symbols/system/bin/service
(gdb) target remote localhost:2345
(gdb) b main
Cannot access memory at address 0x0
Breakpoint 1 at 0x2a00146c: file frameworks/native/cmds/service/service.cpp, line 59.
(gdb) cont
Continuing.
warning: Could not load shared library symbols for 11 libraries, e.g. /system/bin/linker.
...
Breakpoint 1, main (argc=2, argv=0xbe882b74) at frameworks/native/cmds/service/service.cpp:59
59 {
(gdb) n
60 sp<IServiceManager> sm = defaultServiceManager();
(gdb) n
59 {
(gdb) n
60 sp<IServiceManager> sm = defaultServiceManager();
(gdb) n
61 fflush(stdout);
39. 39
6.7. JTAG
● Requires hardware device
● Sometimes interfaces with gdb
● Not Android specific
● Some allow transparent kernel/user-space debug
● Don't know of any that go all the way up to Dalvik
43. 43
7.3. ftrace
● With 4.1, Google introduced systrace/atrace
● systrace is a Python script running on host side
● atrace is native Android binary
● systrace calls atrace via ADB
● atrace uses ftrace to capture kernel events
● Stack instrumented to feed events to ftrace
● Google's doc:
● https://developer.android.com/tools/help/systrace.html
● https://developer.android.com/tools/debugging/systrace.html
45. 45
... trouble is ...
● Finicky -- notes from my attempts with 4.3:
● I can't get it to work !*!@#$&!#*$!
● Default goldfish kernel doesn't have ftrace
● Able to build ftrace-enabled kernel for goldfish
● Can trace that system ... so long as I don't use
atrace/systrace ... WTF1
?
● Not all Android kernels have ftrace enabled
● Generates HTML file that can only be read by
Chrome ... it doesn't work in Firefox. NIH?
1: The AOSP sources define WTF as “What a Terrible Failure”. We
trust they've done their research.
46. 46
... still ...
● Have a look at these files:
● /external/chromium-trace/systrace.py
● /frameworks/native/cmds/atrace
● /frameworks/base/core/java/android/os/Trace.java
● /erameworks/native/include/utils/Trace.h
● /system/core/include/cutils/trace.h
● /frameworks/native/libs/utils/Trace.cpp
● Look for:
● ATRACE* in c/cpp files
● Trace.traceBegin()/trace.traceEnd() in Java files