Author: Roger Ye
Publisher: Addison-Wesley Professional
Release Date: 2015-08-01
The First Practical, Hands-On Guide to Embedded System Programming for Android Today, embedded systems programming is a more valuable discipline than ever, driven by fast-growing, new fields such as wearable technology and the Internet of Things. In this concise guide, Roger Ye teaches all the skills you’ll need to write the efficient embedded code necessary to make tomorrow’s Android devices work. The first title in Addison-Wesley’s new Android™ Deep Dive series for intermediate and expert Android developers, Embedded Programming with Android™ draws on Roger Ye’s extensive experience with advanced projects in telecommunications and mobile devices. Step by step, he guides you through building a system with all the key components Android hardware developers must deliver to manufacturing. By the time you’re done, you’ll have the key programming, compiler, and debugging skills you’ll need for real-world projects. First, Ye introduces the essentials of bare-metal programming: creating assembly language code that runs directly on hardware. Then, building on this knowledge, he shows how to use C to create hardware interfaces for booting a Linux kernel with the popular U-Boot bootloader. Finally, he walks you through using filesystem images to boot Android and learning to build customized ROMs to support any new Android device. Throughout, Ye provides extensive downloadable code you can run, explore, and adapt. You will Build a complete virtualized environment for embedded development Understand the workflow of a modern embedded systems project Develop assembly programs, create binary images, and load and run them in the Android emulator Learn what it takes to bring up a bootloader and operating system Move from assembler to C, and explore Android’s goldfish hardware interfaces Program serial ports, interrupt controllers, real time clocks, and NAND flash controllers Integrate C runtime libraries Support exception handling and timing Use U-Boot to boot the kernel via NOR or NAND flash processes Gain in-depth knowledge for porting U-Boot to new environments Integrate U-Boot and a Linux kernel into an AOSP and CyanogenMod source tree Create your own Android ROM on a virtual Android device
Author: Roger Ye
Publisher: Addison-Wesley Professional
Release Date: 2015-08-13
Today, embedded systems programming is a more valuable discipline than ever, driven by entirely new fields such as wearable technology and the "Internet of Things." Now, for the first time, there's a complete guide to bare-metal embedded system programming using the Android Emulator virtual environment. Embedded systems expert Roger Ye teaches all the skills you need to program directly to hardware: gaining performance and efficiency benefits you can't achieve any other way. Since this hands-on guide utilizes the widely accessible Android Emulator, you can now learn bare-metal programming without access to the hardware itself. Ye guides you through setting up your complete development environment, and then builds your skills through several realistic projects. First, you'll construct a complete bootloader: one of the most common and useful embedded systems programming projects. Ye covers implementing U-Boot from start to finish: loading the first instruction on your target hardware platform, programming in assembly language for the ARM processor, programming in the higher level C language, adding C library support, adding hardware support, and more. As you master the workflow of an embedded systems project, you'll gain essential skills for diverse tasks ranging from error handling to integrating hardware interfaces. Then, you'll deepen your knowledge through additional real-world projects: serial ports, NAND flash devices, real time clocks, interrupt controllers, and more. These projects show how to decouple hardware interface handling tasks from other tasks associated with the software framework or OS support. They also give you deep insights into the internals of the Android emulator: insights that can help you use it far more effectively in embedded development.
Embedded Android is for Developers wanting to create embedded systems based on Android and for those wanting to port Android to new hardware, or creating a custom development environment. Hackers and moders will also find this an indispensible guide to how Android works.
Create the perfectly customized system by unleashing the power of Android OS on your embedded device About This Book Understand the system architecture and how the source code is organized Explore the power of Android and customize the build system Build a fully customized Android version as per your requirements Who This Book Is For If you are a Java programmer who wants to customize, build, and deploy your own Android version using embedded programming, then this book is for you. What You Will Learn Master Android architecture and system design Obtain source code and understand the modular organization Customize and build your first system image for the Android emulator Level up and build your own Android system for a real-world device Use Android as a home automation and entertainment system Tailor your system with optimizations and add-ons Reach for the stars: look at the Internet of Things, entertainment, and domotics In Detail Take a deep dive into the Android build system and its customization with Learning Embedded Android Programming, written to help you master the steep learning curve of working with embedded Android. Start by exploring the basics of Android OS, discover Google's “repo” system, and discover how to retrieve AOSP source code. You'll then find out to set up the build environment and the first AOSP system. Next, learn how to customize the boot sequence with a new animation, and use an Android “kitchen” to “cook” your custom ROM. By the end of the book, you'll be able to build customized Android open source projects by developing your own set of features. Style and approach This step-by-step guide is packed with various real-world examples to help you create a fully customized Android system with the most useful features available.
Author: Roger Ye
Publisher: Packt Publishing Ltd
Release Date: 2017-05-31
Build, customize, and debug your own Android system About This Book Master Android system-level programming by integrating, customizing, and extending popular open source projects Use Android emulators to explore the true potential of your hardware Master key debugging techniques to create a hassle-free development environment Who This Book Is For This book is for Android system programmers and developers who want to use Android and create indigenous projects with it. You should know the important points about the operating system and the C/C++ programming language. What You Will Learn Set up the Android development environment and organize source code repositories Get acquainted with the Android system architecture Build the Android emulator from the AOSP source tree Find out how to enable WiFi in the Android emulator Debug the boot up process using a customized Ramdisk Port your Android system to a new platform using VirtualBox Find out what recovery is and see how to enable it in the AOSP build Prepare and test OTA packages In Detail Android system programming involves both hardware and software knowledge to work on system level programming. The developers need to use various techniques to debug the different components in the target devices. With all the challenges, you usually have a deep learning curve to master relevant knowledge in this area. This book will not only give you the key knowledge you need to understand Android system programming, but will also prepare you as you get hands-on with projects and gain debugging skills that you can use in your future projects. You will start by exploring the basic setup of AOSP, and building and testing an emulator image. In the first project, you will learn how to customize and extend the Android emulator. Then you'll move on to the real challenge—building your own Android system on VirtualBox. You'll see how to debug the init process, resolve the bootloader issue, and enable various hardware interfaces. When you have a complete system, you will learn how to patch and upgrade it through recovery. Throughout the book, you will get to know useful tips on how to integrate and reuse existing open source projects such as LineageOS (CyanogenMod), Android-x86, Xposed, and GApps in your own system. Style and approach This is an easy-to-follow guide full of hands-on examples and system-level programming tips.
Author: G. Blake Meike
Publisher: Addison-Wesley Professional
Release Date: 2016-06-27
Write Apps for Maximum Performance and Responsiveness “Threading and concurrency are as important in mobile as they are in large, distributed systems. This book does an excellent job of re-introducing us to the basic concepts and describing how to apply them to the Android framework. Even the most experienced Android developer should pick up at least a few tricks from these pages.” —Dave Smith, PE, Google Developer Expert for Android Mastering concurrency is critical to developing software with superior performance and responsiveness. This is especially true for Android, where interruptions are frequent and abrupt, and in order to be correct, programs must be aware of component and process lifecycles in addition to being thread safe. You need a deep, Android-specific understanding of concurrency—and Android Concurrency delivers it. This guide in Addison-Wesley’s Android Deep Dive series for experienced Android developers helps you leverage today’s multi-core processors and heavily cached architectures, as well as major improvements built into Android 5 (Lollipop). Top Android developer and consultant Blake Meike strips the magic and mystery from concurrent programming and presents intensely practical solutions for everything from inter-thread communication to network communication. Meike introduces a simple but powerful architectural framework you can use to address new issues whenever they arise, and offers expert guidance for debugging even highly complex concurrency issues. Android Concurrency combines in-depth knowledge, proven patterns and idioms, and world-class insights for avoiding performance-killing mistakes. For serious Android developers, it will be an indispensable resource. You will • Gain new clarity about what concurrency really is, and how concurrent processes work • Master best practices for writing concurrent code that’s more robust and less susceptible to weird, hard-to-diagnose errors • Review the Java concurrency mechanisms Android’s constructs are built upon • Shape an approach to concurrency that reflects the unique characteristics of the Android environment • Avoid widespread misconceptions that lead Android developers into trouble • Make the most of AsyncTask—but only when it’s the right tool for the job • Leverage the powerful, lightweight Looper/Handler framework to support scheduled, asynchronous tasks and execute many message types • Use the Android Service component to separate business logic from UI • Understand the differences between started and bound services and use them effectively for intra- and inter-process communication • Perform scheduled tasks, including tasks requiring polling and explicit scheduling • Track down problems via static analysis, annotations, and assertions
Develop smart Internet of things projects using Android Things. About This Book Learn to build promising IoT projects with Android Things Make the most out of hardware peripherals using standard Android APIs Build enticing projects on IoT, home automation, and robotics by leveraging Raspberry Pi 3 and Intel Edison Who This Book Is For This book is for Android enthusiasts, hobbyists, IoT experts, and Android developers who want to gain a deeper knowledge of Android Things. The main focus is on implementing IoT projects using Android Things. What You Will Learn Understand IoT ecosystem and the Android Things role See the Android Things framework: installation, environment, SDK, and APIs See how to effectively use sensors (GPIO and I2C Bus) Integrate Android Things with IoT cloud platforms Create practical IoT projects using Android Things Integrate Android Things with other systems using standard IoT protocols Use Android Things in IoT projects In Detail Android Things makes developing connected embedded devices easy by providing the same Android development tools, best-in-class Android framework, and Google APIs that make developers successful on mobile. With this book, you will be able to take advantage of the new Android framework APIs to securely build projects using low-level components such as sensors, resistors, capacitors, and display controllers. This book will teach you all you need to know about working with Android Things through practical projects based on home automation, robotics, IoT, and so on. We'll teach you to make the most of the Android Things and build enticing projects such as a smart greenhouse that controls the climate and environment automatically. You'll also create an alarm system, integrate Android Things with IoT cloud platforms, and more. By the end of this book, you will know everything about Android Things, and you'll have built some very cool projects using the latest technology that is driving the adoption of IoT. You will also have primed your mindset so that you can use your knowledge for profitable, practical projects. Style and approach This book is packed with fun-filled, end-to-end projects that you will be encouraged to experiment on the Android Things OS.
Author: Joshua J. Drake
Publisher: John Wiley & Sons
Release Date: 2014-03-26
The first comprehensive guide to discovering and preventing attacks on the Android OS As the Android operating system continues to increase its share of the smartphone market, smartphone hacking remains a growing threat. Written by experts who rank among the world's foremost Android security researchers, this book presents vulnerability discovery, analysis, and exploitation tools for the good guys. Following a detailed explanation of how the Android OS works and its overall security architecture, the authors examine how vulnerabilities can be discovered and exploits developed for various system components, preparing you to defend against them. If you are a mobile device administrator, security researcher, Android app developer, or consultant responsible for evaluating Android security, you will find this guide is essential to your toolbox. A crack team of leading Android security researchers explain Android security risks, security design and architecture, rooting, fuzz testing, and vulnerability analysis Covers Android application building blocks and security as well as debugging and auditing Android apps Prepares mobile device administrators, security researchers, Android app developers, and security consultants to defend Android systems against attack Android Hacker's Handbook is the first comprehensive resource for IT professionals charged with smartphone security.
Author: Nikolay Elenkov
Publisher: No Starch Press
Release Date: 2014-10-14
There are more than one billion Android devices in use today, each one a potential target. Unfortunately, many fundamental Android security features have been little more than a black box to all but the most elite security professionals—until now. In Android Security Internals, top Android security expert Nikolay Elenkov takes us under the hood of the Android security system. Elenkov describes Android security architecture from the bottom up, delving into the implementation of major security-related components and subsystems, like Binder IPC, permissions, cryptographic providers, and device administration. You’ll learn: –How Android permissions are declared, used, and enforced –How Android manages application packages and employs code signing to verify their authenticity –How Android implements the Java Cryptography Architecture (JCA) and Java Secure Socket Extension (JSSE) frameworks –About Android’s credential storage system and APIs, which let applications store cryptographic keys securely –About the online account management framework and how Google accounts integrate with Android –About the implementation of verified boot, disk encryption, lockscreen, and other device security features –How Android’s bootloader and recovery OS are used to perform full system updates, and how to obtain root access With its unprecedented level of depth and detail, Android Security Internals is a must-have for any security-minded Android developer.
Author: Adam Stroud
Publisher: Addison-Wesley Professional
Release Date: 2016-07-25
Battle-Tested Strategies for Storing, Managing, and Sharing Android Data “Android™ Database Best Practices goes well beyond API documentation to offer strategic advice about how to handle data in an Android application and the tools needed to develop productively. This arms the developer with a trove of solutions to nearly any problem an application may face involving data. Mastering the concepts in this book are therefore essential for any developer who wants to create professional Android applications.” –Greg Milette, Android developer, Gradison Technologies, Inc. This is the first guide to focus on one of the most critical aspects of Android development: how to efficiently store, retrieve, manage, and share information from your app’s internal database. Through real-world code examples, which you can use in your own apps, you’ll learn how to take full advantage of SQLite and the database-related classes on Android. A part of Addison-Wesley’s Android™ Deep Dive series for experienced Android developers, Android Database Best Practices draws on Adam Stroud’s extensive experience leading cutting-edge app projects. Stroud reviews the core database theory and SQL techniques you need to efficiently build, manipulate, and read SQLite databases. He explores SQLite in detail, illuminates Android’s APIs for database interaction, and shares modern best practices for working with databases in the Android environment. Through a complete case study, you’ll learn how to design your data access layer to simplify all facets of data management and avoid unwanted technical debt. You’ll also find detailed solutions for common challenges in building data-enabled Android apps, including issues associated with threading, remote data access, and showing data to users. Extensive, up-to-date sample code is available for download at github.com/android-database-best-practices/device-database. You will Discover how SQLite database differs from other relational databases Use SQL DDL to add structure to a database, and use DML to manipulate data Define and work with SQLite data types Persist highly structured data for fast, efficient access Master Android classes for create, read, update, and delete (CRUD) operations and database queries Share data within or between apps via content providers Master efficient UI strategies for displaying data, while accounting for threading issues Use Android’s Intents API to pass data between activities when starting a new activity or service Achieve two-way communication between apps and remote web APIs Manage the complexities of app-to-server communication, and avoid common problems Use Android’s new Data Binding API to write less code and improve performance
Author: Jason Tyler
Publisher: John Wiley & Sons
Release Date: 2012-05-08
Make your Android device truly your own Are you eager to make your Android device your own but you're not sure where to start? Then this is the book for you. XDA is the world's most popular resource for Android hacking enthusiasts, and a huge community has grown around customizing Android devices with XDA. XDA's Android Hacker's Toolkit gives you the tools you need to customize your devices by hacking or rooting the android operating system. Providing a solid understanding of the internal workings of the Android operating system, this book walks you through the terminology and functions of the android operating system from the major nodes of the file system to basic OS operations. As you learn the fundamentals of Android hacking that can be used regardless of any new releases, you'll discover exciting ways to take complete control over your device. Teaches theory, preparation and practice, and understanding of the OS Explains the distinction between ROMing and theming Provides step-by-step instructions for Droid, Xoom, Galaxy Tab, LG Optimus, and more Identifies the right tools for various jobs Contains new models enabling you to root and customize your phone Offers incomparable information that has been tried and tested by the amazing XDA community of hackers, gadgeteers, and technicians XDA's Android Hacker's Toolkit is a simple, one-stop resource on hacking techniques for beginners.
If you are an Android app developer who wants to experiment with the hardware capabilities of the BeagleBone Black platform, then this book is ideal for you. You are expected to have basic knowledge of developing Android apps but no prior hardware experience is required.