100% found this document useful (1 vote)
54 views

Complete Download Learn Android Studio 4 - Efficient Java-Based Android Apps Development 2nd Edition Ted Hagos PDF All Chapters

Efficient

Uploaded by

owneyvargou5
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
54 views

Complete Download Learn Android Studio 4 - Efficient Java-Based Android Apps Development 2nd Edition Ted Hagos PDF All Chapters

Efficient

Uploaded by

owneyvargou5
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 55

Download the Full Version of textbook for Fast Typing at textbookfull.

com

Learn Android Studio 4 - Efficient Java-Based


Android Apps Development 2nd Edition Ted Hagos

https://textbookfull.com/product/learn-android-
studio-4-efficient-java-based-android-apps-development-2nd-
edition-ted-hagos/

OR CLICK BUTTON

DOWNLOAD NOW

Download More textbook Instantly Today - Get Yours Now at textbookfull.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

Learn Android Studio 3: Efficient Android App Development


1st Edition Ted Hagos

https://textbookfull.com/product/learn-android-studio-3-efficient-
android-app-development-1st-edition-ted-hagos/

textboxfull.com

Android Studio 3 3 Development Essentials Android 9


Edition Developing Android 9 Apps Using Android Studio 3 3
Java and Android Jetpack Neil Smyth
https://textbookfull.com/product/android-studio-3-3-development-
essentials-android-9-edition-developing-android-9-apps-using-android-
studio-3-3-java-and-android-jetpack-neil-smyth/
textboxfull.com

Beginning Android Games Development - From Beginner to Pro


4th Edition Ted Hagos

https://textbookfull.com/product/beginning-android-games-development-
from-beginner-to-pro-4th-edition-ted-hagos/

textboxfull.com

Beginning Android Games Development - From Beginner to Pro


4th Edition Ted Hagos

https://textbookfull.com/product/beginning-android-games-development-
from-beginner-to-pro-4th-edition-ted-hagos-2/

textboxfull.com
Learn Java for Android Development Friesen Jeff

https://textbookfull.com/product/learn-java-for-android-development-
friesen-jeff/

textboxfull.com

Android Studio Iguana Essentials Kotlin Edition Developing


Android Apps Using Android Studio 2023 2 1 and Kotlin Neil
Smyth
https://textbookfull.com/product/android-studio-iguana-essentials-
kotlin-edition-developing-android-apps-using-android-
studio-2023-2-1-and-kotlin-neil-smyth/
textboxfull.com

Android Studio 3 0 Development Essentials Android 8


Edition Neil Smyth

https://textbookfull.com/product/android-studio-3-0-development-
essentials-android-8-edition-neil-smyth/

textboxfull.com

Learn Java for Android Development: Migrating Java SE


Programming Skills to Mobile Development 4th Edition Peter
Späth
https://textbookfull.com/product/learn-java-for-android-development-
migrating-java-se-programming-skills-to-mobile-development-4th-
edition-peter-spath/
textboxfull.com

How to Build Android Apps with Kotlin A practical guide to


developing testing and publishing your first Android apps
2nd Edition Alex Forrester
https://textbookfull.com/product/how-to-build-android-apps-with-
kotlin-a-practical-guide-to-developing-testing-and-publishing-your-
first-android-apps-2nd-edition-alex-forrester/
textboxfull.com
Learn Android
Studio 4
Efficient Java-Based Android
Apps Development

Second Edition

Ted Hagos
Learn Android Studio 4
Efficient Java-Based
Android Apps Development
Second Edition

Ted Hagos
Learn Android Studio 4: Efficient Java-Based Android Apps Development
Ted Hagos
Manila, National Capital Region, Philippines

ISBN-13 (pbk): 978-1-4842-5936-8 ISBN-13 (electronic): 978-1-4842-5937-5


https://doi.org/10.1007/978-1-4842-5937-5

Copyright © 2020 by Ted Hagos


This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the
material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation,
broadcasting, reproduction on microfilms or in any other physical way, and transmission or information
storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now
known or hereafter developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with
every occurrence of a trademarked name, logo, or image, we use the names, logos, and images only in an
editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the
trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not
identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to
proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of publication,
neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or
omissions that may be made. The publisher makes no warranty, express or implied, with respect to the
material contained herein.
Managing Director, Apress Media LLC: Welmoed Spahr
Acquisitions Editor: Steve Anglin
Development Editor: Matthew Moodie
Coordinating Editor: Mark Powers
Cover designed by eStudioCalamar
Distributed to the book trade worldwide by Apress Media, LLC, 1 New York Plaza, New York, NY 10004,
U.S.A. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail orders-ny@springer-sbm.com, or visit www.
springeronline.com. Apress Media, LLC is a California LLC and the sole member (owner) is Springer Science
+ Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation.
For information on translations, please e-mail booktranslations@springernature.com; for reprint,
paperback, or audio rights, please e-mail bookpermissions@springernature.com.
Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions and
licenses are also available for most titles. For more information, reference our Print and eBook Bulk Sales
web page at http://www.apress.com/bulk-sales.
Any source code or other supplementary material referenced by the author in this book is available to
readers on GitHub via the book’s product page, located at www.apress.com/9781484259368. For more
detailed information, please visit http://www.apress.com/source-code.
Printed on acid-free paper
For Adrianne and Stephanie.
Table of Contents
About the Author ..................................................................................................... xi

About the Technical Reviewer ............................................................................... xiii

Acknowledgments ...................................................................................................xv

Introduction ...........................................................................................................xvii

Chapter 1: Android Overview .................................................................................... 1


History ........................................................................................................................................... 1
The Operating System................................................................................................................... 3
Summary....................................................................................................................................... 5

Chapter 2: Android Studio ........................................................................................ 7


Setup ............................................................................................................................................. 7
Configuring Android Studio ......................................................................................................... 10
Hardware Acceleration ................................................................................................................ 14
Summary..................................................................................................................................... 15

Chapter 3: Project Basics ....................................................................................... 17


Create a Project .......................................................................................................................... 17
Create an AVD ............................................................................................................................. 22
Summary..................................................................................................................................... 29

Chapter 4: Android Studio IDE ................................................................................ 31


The IDE ........................................................................................................................................ 31
Main Editor .................................................................................................................................. 34
Editing Layout Files ..................................................................................................................... 35
TODO Items ................................................................................................................................. 38

v
TABLE OF CONTENTS

How to Get More Screen Space for Codes .................................................................................. 39


Project Tool Window .................................................................................................................... 41
Preferences/Settings .................................................................................................................. 43
Summary..................................................................................................................................... 45

Chapter 5: Android Application Overview............................................................... 47


What Makes Up an Android Project............................................................................................. 47
Application Entry Point ................................................................................................................ 50
Activities ..................................................................................................................................... 51
Intents ......................................................................................................................................... 53
Summary..................................................................................................................................... 54

Chapter 6: Activities and Layouts ........................................................................... 55


Activity ........................................................................................................................................ 55
Layout File ............................................................................................................................. 55
Activity Class ......................................................................................................................... 60
Hello World .................................................................................................................................. 61
Modifying Hello World ................................................................................................................. 64
Summary..................................................................................................................................... 74

Chapter 7: Event Handling ...................................................................................... 75


Intro to Event Handling................................................................................................................ 75
Handling Long Clicks .................................................................................................................. 81
Summary..................................................................................................................................... 87

Chapter 8: Intents ................................................................................................... 89


What Intents Are.......................................................................................................................... 89
Implicit Intents ............................................................................................................................ 94
Summary..................................................................................................................................... 99

Chapter 9: Fragments ........................................................................................... 101


Introduction to Fragments......................................................................................................... 101
Summary................................................................................................................................... 110

vi
TABLE OF CONTENTS

Chapter 10: Navigation ......................................................................................... 111


Navigation Before Architecture Components ............................................................................ 111
Navigation Components ............................................................................................................ 114
Working with Jetpack Navigation ............................................................................................. 116
Summary................................................................................................................................... 129

Chapter 11: Running in the Background............................................................... 131


Basic Concepts ......................................................................................................................... 131
The UI Thread ............................................................................................................................ 132
Threads and Runnables ............................................................................................................ 136
Summary................................................................................................................................... 146

Chapter 12: Debugging ......................................................................................... 147


Types of Errors .......................................................................................................................... 147
Syntax Errors ....................................................................................................................... 147
Runtime Errors .................................................................................................................... 148
Logic Errors ......................................................................................................................... 150
Debugger .................................................................................................................................. 153
Single Stepping ................................................................................................................... 154
Summary................................................................................................................................... 156

Chapter 13: Testing ............................................................................................... 157


Types of Testing ........................................................................................................................ 157
Unit Testing ............................................................................................................................... 159
JVM Test vs. Instrumented Test ........................................................................................... 160
A Simple Demo .................................................................................................................... 161
Implementing the Test ......................................................................................................... 165
Running a Unit Test .............................................................................................................. 167
Instrumented Testing ................................................................................................................ 170
Setting Up a Simple Test...................................................................................................... 171
Recording Espresso Tests .................................................................................................... 175
More on Espresso Matchers ................................................................................................ 178
Espresso Actions ................................................................................................................. 179
Summary................................................................................................................................... 180
vii
TABLE OF CONTENTS

Chapter 14: Working with Files ............................................................................ 181


Internal and External Storage ................................................................................................... 181
Cache Directory......................................................................................................................... 182
How to Work with Internal Storage ........................................................................................... 183
Summary................................................................................................................................... 191

Chapter 15: BroadcastReceivers .......................................................................... 193


Introduction to BroadcastReceivers .......................................................................................... 193
System Broadcast vs. Custom Broadcast............................................................................ 194
Two Ways to Register for Broadcast .................................................................................... 194
Summary................................................................................................................................... 202

Chapter 16: Jetpack, LiveData, ViewModel, and Room ........................................ 203


Lifecycle Aware Components .................................................................................................... 203
ViewModel ................................................................................................................................ 207
LiveData .................................................................................................................................... 212
Room ......................................................................................................................................... 217
Summary................................................................................................................................... 224

Chapter 17: Distributing Apps .............................................................................. 225


Prepare the App for Release ..................................................................................................... 225
Prepare Material and Assets for Release ............................................................................ 226
Configure the App for Release ............................................................................................. 226
Build a Release-Ready Application ........................................................................................... 227
Releasing the App ..................................................................................................................... 232
Summary................................................................................................................................... 237

Chapter 18: Short Takes ....................................................................................... 239


Productivity Features ................................................................................................................ 239
Importing Samples .............................................................................................................. 239
Refactoring .......................................................................................................................... 241
Generate .............................................................................................................................. 243
Coding Styles ....................................................................................................................... 248

viii
TABLE OF CONTENTS

Live Templates .......................................................................................................................... 250


Important Keyboard Shortcuts .................................................................................................. 251
Summary................................................................................................................................... 252

Appendix A: Java Refresher ................................................................................. 253


A Brief History ........................................................................................................................... 253
Editions ..................................................................................................................................... 254
Setup ......................................................................................................................................... 255
Writing, Compiling, and Running ............................................................................................... 256
Syntax ....................................................................................................................................... 257
A Typical Java Program ....................................................................................................... 258
Compilation Unit .................................................................................................................. 260
Comments ........................................................................................................................... 260
Statements .......................................................................................................................... 261
Keywords ............................................................................................................................. 261
Identifiers ............................................................................................................................ 262
Methods............................................................................................................................... 263
Packages and Imports ......................................................................................................... 265
Program Entry Point ............................................................................................................ 266
Data Types................................................................................................................................. 267
Overflow .............................................................................................................................. 271
Casting ................................................................................................................................ 271
Strongly and Statically Typed .............................................................................................. 272
Reference Types .................................................................................................................. 273
Stack and Heap ................................................................................................................... 274
Constants............................................................................................................................. 275
Operators .................................................................................................................................. 276
Assignment.......................................................................................................................... 276
Arithmetic ............................................................................................................................ 276
Unary ................................................................................................................................... 278
Equality and Relational ........................................................................................................ 279
Logical Operators ................................................................................................................ 281

ix
TABLE OF CONTENTS

Loops and Branches.................................................................................................................. 282


If and Switch Statements .................................................................................................... 282
Switch Statement ................................................................................................................ 284
While Loop ........................................................................................................................... 287
For-Loop .............................................................................................................................. 288
Simple Application of Control Structures............................................................................. 289
Arrays ........................................................................................................................................ 291
Array Creation...................................................................................................................... 292
Managing Arrays.................................................................................................................. 293
Using the Enhanced for-loop ............................................................................................... 295
More on Arrays .................................................................................................................... 297
Reference Types ........................................................................................................................ 299
Classes ...................................................................................................................................... 301
Inheritance .......................................................................................................................... 301
Constructors ........................................................................................................................ 303
Overloading ......................................................................................................................... 305
Overriding ............................................................................................................................ 306
Strings....................................................................................................................................... 308
String Creation..................................................................................................................... 308
Strings Are Immutable ......................................................................................................... 309
Why Can’t We Modify Strings .............................................................................................. 311
Comparing Strings ............................................................................................................... 312
Common Usage ................................................................................................................... 314
Exceptions................................................................................................................................. 316

Index ..................................................................................................................... 319

x
About the Author
Ted Hagos is a software developer by trade. At the moment, he’s Chief Technology
Officer and Data Protection Officer of RenditionDigital International, a software
development company based out of Dublin. He wore many hats in his 20+ years in
software development, for example, team lead, project manager, architect, and director
for development. He also spent time as a trainer for IBM Advanced Career Education,
Ateneo ITI, and Asia Pacific College.

xi
About the Technical Reviewer
Jeff Friesen is a freelance teacher and software developer
with an emphasis on Java. In addition to authoring Java I/O,
NIO and NIO.2 (Apress) and Java Threads and the Concurrency
Utilities (Apress), Jeff has written numerous articles on
Java and other technologies (such as Android) for JavaWorld
(www.javaworld.com), InformIT (www.informit.com),
Java.net, SitePoint (www.sitepoint.com), and other
websites. Jeff can be contacted via his website at JavaJeff.ca
or via his LinkedIn profile (www.linkedin.com/in/javajeff).

xiii
Acknowledgments
To Stephanie and Adrianne, my thanks and my love.
To Mark Powers and Steve Anglin, and to all who made this book possible. Many,
many thanks.

xv
Introduction
Welcome to Learn Android Studio 4. This book will help you get started in your
programming journey with the little green robot. You already bought the book (many
thanks to you), so you don’t need to be convinced that programming for the mobile
platform offers many opportunities for software developers.
The book is aimed at beginning Android programmers but not wholly new to
programming. The book assumes that you have prior programming experience with
any of the CFOL (C family of languages, e.g., C, C++, Java, C#, JavaScript). Ideally, you
are already a Java programmer trying to get your feet wet in Android; if you’re not, don’t
worry. Basic Java programming is covered in the Appendix, and you can refer to that as
you try to feel your way into the language.
The book covers two fronts: the fundamentals of Android programming and the
use of Android Studio 4. Android programming concepts and the use of the IDE are
explained using a combination of graphics and code walk-throughs: there’s plenty of
those in the book.

Chapter Overview
Chapter 1: Android Overview—This chapter introduces Android.
It deals with a bit of Android’s history and the technical makeup of
its OS.

Chapter 2: Android Studio—If you haven’t set up your Android


environment yet, don’t skip this chapter; it walks you through the
setup of Android Studio, whether you’re on macOS, Windows, or
Linux. It also introduces the essential parts of the IDE.

Chapter 3: Project Basics—This chapter introduces the concept


and mechanics of an Android project. It walks through creating a
project and running a project in an AVD (Android Virtual Device).

xvii
INTRODUCTION

Chapter 4: Android Studio IDE—Android Studio is a full-fledged


IDE; it has lots of features and parts. This chapter introduces you
to the most common tools and windows of Android Studio.

Chapter 5: Android Application Overview—What makes up an


Android project? What are components? What are Intents? These
are some of the questions this chapter addresses. You’ll discover
how different an Android app is from a desktop app.

Chapter 6: Activities and Layouts—We get into the basics of


UI building. Activities are the primary means by which the user
sees your app. We get to learn how to build these and other UI
elements that are in common use.

Chapter 7: Event Handling—Handling user actions is a very


common task in Android programming. This chapter walks you
through the basics of listener objects, how to create them, and
how to bind them to View elements (like Buttons).

Chapter 8: Intents—Intents are uniquely Android’s. See how this


message-passing mechanism works in Android and how it glues
all the other Android components.

Chapter 9: Fragments—Fragments are a granular way to


compose a screen. This chapter walks through the fundamental
concepts of Fragments.

Chapter 10: Navigation—Navigation components are quite new.


They are a part of Jetpack. This chapter introduces you to the more
modern ways on how to build multiscreen apps.

Chapter 11: Running in the Background—When you start


building nontrivial apps, you will need to read or write from I/O
sources, fetch data from the network, and so on. These activities
take time, and they need to be run in the background. This
chapter is all about that.

Chapter 12: Debugging—You will often make coding mistakes.


This chapter introduces you to the types of errors you may
encounter and how to use Android Studio’s debugging features to
solve them.
xviii
INTRODUCTION

Chapter 13: Testing—At some point, you have to test your code
before you release them. This chapter introduces you to the
many kinds of testing you can do to an app. More importantly, it
introduces you to unit testing and Espresso testing.

Chapter 14: Working with Files—You’ll need to save to a text file


or read from it; this chapter walks through the basics of file input
and output in Android.
Chapter 15: BroadcastReceivers—One of Android’s foundational
components is the BroadcastReceiver; this component lets you
build decoupled apps by adopting the publish-subscribe pattern.

Chapter 16: Jetpack, LiveData, ViewModel, and Room—More


goodies from Architecture components. This chapter walks
through the basics of how to build components that have lifecycle
awareness of other components and how to use Room.

Chapter 17: Distributing Apps—When you’re ready to distribute


your app, you’ll need to sign it and list it in a marketplace like
Google Play. This chapter walks you through the steps on how to
do it.

Chapter 18: Short Takes—More Android Studio goodness.


Appendix—The Appendix breezes through the Java language. It
deals with some of the basic language concepts you will need to
get started in Android programming.

xix
CHAPTER 1

Android Overview
What the chapter covers:

• Brief history of Android


• The Android operating system
It’s been quite a while since the little green robot made waves and disrupted the
mobile computing world. It started as an operating system for phones, but it has, since,
made its way into all sorts of places like TVs, car systems, watches, e-readers, netbooks,
and game consoles, among other things.
Android, to many people, may seem like an OS only, which for the most part it is;
but apart from the OS, Android also includes a software development kit, libraries,
application frameworks, and reference design.

History
2003. Andy Rubin founded Android Inc.; Google backed the
company but didn’t own yet.
2005. Google bought Android Inc
2007. Android was officially given to open source; Google turned
over the ownership to the Open Handset Alliance (OHA).
2008. Android v1.0 was released. The Google Play Store was called
by a different name then; it was called the “Market.”
2009. Versions 1.1, 1.5 (Cupcake), 1.6 (Donut), and 2.0 (Eclair)
were released. Cupcake was the first version to get the sugary
treats naming scheme. This was a significant release because it
featured an on-screen keyboard. Donut is remembered as the first
version to include the “search box.” Eclair is remembered as the
first to include Google maps, which started the death of built-in
car navigation, because Google offered Maps for free.

1
© Ted Hagos 2020
T. Hagos, Learn Android Studio 4, https://doi.org/10.1007/978-1-4842-5937-5_1
CHAPTER 1 ANDROID OVERVIEW

2010. Versions 2.2 (Froyo) and 2.3 through 2.3.7 (Gingerbread)


were released. Froyo improved the Android experience; it featured
five home screens instead of three during the previous versions.
Gingerbread coincided with the release of Nexus S (the one from
Samsung). Gingerbread may also be remembered as the version
that introduced support for a front-facing camera; and the selfie
avalanche began.
2011. Versions 3.0 (Honeycomb) and 4.0 through 4.0.4 (Ice Cream
Sandwich) were released. The previous versions of Android were
all (exclusively) for the phones; Android 3.0 changed that because
Honeycomb was meant for tablets. It hinted at design cues for
future versions of Android. It removed physical buttons; the home,
back, and menu buttons were part of the software. Google and
Samsung partnered once again for the release of Galaxy Nexus
(successor for the Nexus S), which used Ice Cream Sandwich as
the OS.
2012. Versions 4.1 through 4.3.1 (Jelly Bean) were released.
Jelly Bean introduced “Google Now” which could be accessed
via a quick swipe from the home screen; this allowed access
to Calendar, Events, Emails, and weather reports all in a single
screen. It was an early version of Google Assistant. It was also with
this version where Project Butter was implemented which allowed
for a smoother Android experience.
2013. Versions 4.4 through 4.4.4 (KitKat) were released. KitKat was
a big aesthetic upgrade; the blue accents of the previous versions
were replaced with a more refined white accent, and many stock
apps were redesigned with lighter color schemes. This version
also brought us the “Ok Google” search command
2014. Versions 5.0–5.1/5.1.1 (Lollipop) were released; Android
became 64-bit. Lollipop featured the first use of Google’s material
design philosophy. The changes were not just cosmetics; under
the hood, Android 5 moved away from the Dalvik VM and used
the Android Runtime (ART) instead. Android TV was also released
during this time.

2
CHAPTER 1 ANDROID OVERVIEW

2015. Versions 6.0 and 6.01 (Marshmallow) were released. The


app menu changed dramatically, and Google added search bar
so users can find apps quickly. The memory managers were
introduced in this version so users can check the memory usage of
apps. The permission system was revamped as well; apps can no
longer request for permissions on a wholesale basis; permissions
were requested (and granted) on a per-permission basis and as
they were required.
2016. Versions 7.0–7.1.2 (Nougat) were released. “Google Now”
was replaced with “Google Assistant.” The improved multitasking
system allowed for split-screen mode.
2017. Versions 8.0 and 8.1 (Oreo) were released; and with it were
more multitasking features. Picture-in-picture and native split-
screen was introduced with this version.
2018. Android 9.0 (Pie) was released—exactly 10 years after v1.0.
This release brought with it quite a number of visual changes
which made it the most significant update in recent years. The
three-button setup was replaced with a single-pill shaped button
and gestures to control things like multitasking.
2019. Android 10 was released; this is a shift for Google in terms
of naming the versions. Google did away with the dessert names
and simply named the version according to its number. The green
robot is being rebranded. This version also marks the end of the
Android navigation buttons. While Android 9 kept the “back”
button, v10 has completely removed it and will use gestures
instead.

The Operating System


The most visible part of Android, at least for developers, is its operating system. Android
OS may appear complex, but its purpose is simple; it stands between the user and the
hardware. That may be an oversimplification, but it will suffice for our purposes. By
“user,” I don’t literally mean an end user or a person; by “user” I mean an application, a
piece of code that a programmer creates, like a word processor or an email client.

3
CHAPTER 1 ANDROID OVERVIEW

Take the email app, for example; as you type each character, the app needs to
communicate to the hardware for the message to make its way to your screen and hard
drive and eventually send it to the cloud via your network. It’s a more involved process
than I describe it here, but that is the basic idea. At its simplest, an OS does three things:

• Manages hardware on behalf of applications.

• Provides services to applications like networking, security, memory


management, and so forth.

• Manages execution of applications; this is the part that allows us to


run multiple applications (seemingly) almost at the same time.

Figure 1-1 shows a logical diagram of Android’s system architecture; it is far from
complete, since it doesn’t show all the apps, components, and libraries in the Android
platform, but it should give you an idea on how things are organized.

Figure 1-1. Platform architecture

The lowest level in the diagram is the one responsible for interfacing with the
hardware, various services like memory management, and executions of processes. This
part of the Android OS is Linux. Linux is a very stable OS and is quite ubiquitous itself.
You can find it in many places like server hardware on data centers, appliances, medical
devices, and so forth. Android uses Linux which handles hardware interfacing and some
other kernel functions.

4
CHAPTER 1 ANDROID OVERVIEW

On top of the Linux kernel are low-level libraries like SQLite, OpenGL, and so on.
These are not part of the Linux kernel but are still low level and as such are written
mostly in C/C++. On the same level, you will find the Android Runtime which is where
Android applications are run.
Next up is the application framework layer. It sits on top of both the low-level
libraries and the Android Runtime because it needs both. This is the layer that we will
interact with as an application developer because it contains all the libraries we need to
write apps.
Finally, on top is the application layer. This is where all our apps reside, both the
ones we write and the ones that come prebuilt with the OS. It should be pointed out that
prebuilt applications which come with the device do not have any special privileges over
the ones we will write. If you don’t like the email app of the phone, you can write your
own and replace it. Android is democratic like that.

Summary
• Android has gone a long way, from the clunky Cupcake version to
Android 10, which is very advanced and provides a buttery smooth
user experience. Android’s release cadence was frenetic during the
early years, but it has since subsided and settled on a more uniform
12-month cycle.

• Android isn’t just an OS, it also includes an application framework,


software development kit, prebuilt applications, and a reference
design.

• Android uses the Linux OS for interfacing with hardware, memory


management, and executions of processes.

5
CHAPTER 2

Android Studio
What the chapter covers:

• Getting Android Studio

• Configuring the IDE

• Basic parts of the IDE

Developing Android applications wasn’t always done in Android Studio (AS). In


the early days of Android, developers built apps using just the bare SDK, a bunch of
command-line tools, and Ant build scripts (Apache Ant)—it was quite the old school;
soon after, the Android Developer Tools (ADT) for Eclipse was released. Eclipse became
the dominant tool for Android development until Android Studio came along.
Android Studio came in 2013. To be sure, it was still on beta, but the writing on the
wall was clear; it was going to be the official development tool for Android development.
Android Studio is based on JetBrains’ IntelliJ; it’s a commercial Java IDE, which also has
a nonpaid or community version. It was the community version of IntelliJ that served as
the basis for Android Studio.

Setup
At the time of writing, Android Studio 4 was on preview release; the version I used for
this book was Canary 9. Android Studio 4 might be on stable release by the time you’re
reading this book; hopefully, the diagrams and screenshots won’t be too different
by then. To download Android Studio 4 (preview release), you can go to https://
developer.android.com/studio/preview.
The installer is available for Windows (both 32- and 64-bit), macOS, and Linux. I ran
the installation instructions on macOS (Catalina), Windows 10 64-bit, and Ubuntu 18. I
work primarily in a macOS environment, which explains why most of the screen grabs
for this book look like macOS. Android Studio looks, runs, and feels (mostly) the same in

7
© Ted Hagos 2020
T. Hagos, Learn Android Studio 4, https://doi.org/10.1007/978-1-4842-5937-5_2
CHAPTER 2 ANDROID STUDIO

all three platforms, with very minor differences like key bindings and the main menu bar
in macOS.
Before we go further, let’s look at the system requirements for Android Studio; at a
minimum, you’ll need either of the following:

• Microsoft Windows 7, 8, or 10 (32- or 64-bit)

• macOS 10.10 (Yosemite or higher)

• Linux (Gnome or KDE Desktop), Ubuntu 14.04 or higher; 64-bit


capable of running 32-bit applications

• GNU C Library (glibc 2.19 or later) if you’re on Linux

For the hardware, your workstation needs to be at least

• 4GB RAM minimum (8GB or more recommended)

• 2GB of available HDD space (4GB is recommended)

• 1280 x 800 minimum screen resolution

The preceding list came from the official Android website (https://developer.
android.com/studio); of course, more is better.
There are no prerequisite software for Android Studio. It used to be that you needed
to install a Java Development Kit prior to installing Android Studio; starting from
Android Studio 2.2, the installer includes an embedded OpenJDK—you no longer need
to bother with installing a separate JDK.
Download the installer from https://developer.android.com/studio/, and get the
proper binary file for your platform.
If you’re on macOS, do the following:

1. Unpack the installer zipped file.

2. Drag the application file into the Applications folder.

3. Launch Android Studio.

Android Studio will prompt you to import some settings if you have a previous
installation. You can import that—it’s the default option.

8
CHAPTER 2 ANDROID STUDIO

Note If you have an existing installation of Android Studio, you can keep using
that version and still install the preview edition. Android Studio 4 can coexist
with your existing version of Android Studio; its settings will be kept in a different
directory.

If you’re on Windows, do the following:

1. Unzip the installer file.

2. Move the unzipped directory to a location of your choice, for


example, C:\Users\myname\AndroidStudio.

3. Drill down to the “AndroidStudio” folder; inside it, you’ll find


“studio64.exe”. This is the file you need to launch. It’s a good idea
to create a shortcut for this file—if you right-click studio64.exe
and choose “Pin to Start Menu,” you can make Android Studio
available from the Windows Start menu; alternatively, you can
also pin it to the Taskbar.

The Linux installation requires a bit more work than simply double-clicking and
following the installer prompts. In future releases of Ubuntu (and its derivatives),
this might change and become as simple and frictionless as its Windows and macOS
counterparts, but for now, we need to do some tweaking. The extra activities on Linux
are mostly because AS needs some 32-bit libraries and hardware acceleration.

Note The installation instructions in this section are meant for Ubuntu 64-bit and
other Ubuntu derivatives, for example, Linux Mint, Lubuntu, Xubuntu, Ubuntu MATE,
and so on. I chose this distribution because I assumed that it is a very common
Linux flavor; hence, the readers of this book will be using that distribution. If you
are running a 64-bit version of Ubuntu, you will need to pull some 32-bit libraries
in order for AS to function well.

9
CHAPTER 2 ANDROID STUDIO

To start pulling the 32-bit libraries for Linux, run the following commands on a
terminal window:

sudo apt-get update && sudo apt-get upgrade -y


sudo dpkg --add-architecture i386
sudo apt-get install libncurses5:i386 libstdc++6:i386 zlib1g:i386

When all the prep work is done, you need to do the following:

1. Unpack the downloaded installer file. You can unpack the file
using command-line tools or using the GUI tools—you can, for
example, right-click the file and select the “Unpack here” option, if
your file manager has that.

2. After unzipping the file, rename the folder to “AndroidStudio”.

3. Move the folder to a location where you have read, write, and
execute privileges. Alternatively, you can also move it to /usr/
local/AndroidStudio.

4. Open a terminal window and go to the AndroidStudio/bin folder,


then run ./studio.sh.

5. At first launch, Android Studio will ask you if you want to import
some settings; if you have installed a previous version of Android
Studio, you may want to import those settings.

Configuring Android Studio


Let’s configure a couple of things first before we go to coding. Let’s do the following:

1. Get some more software that we need so we can build programs


that target specific versions of Android.

2. Make sure we have all the tools we need.

3. (optionally) change the way we get updates.

Launch Android Studio and click “Configure” (as shown in Figure 2-1), then choose
“Preferences” from the drop-down list.

10
CHAPTER 2 ANDROID STUDIO

Figure 2-1. Go to “Preferences” from Android Studio’s opening dialog

The “Preferences” option opens the Preferences dialog. On the left-hand side, go to
Appearance & Behavior ➤ System Settings ➤ Android SDK, as shown in Figure 2-2.

11
CHAPTER 2 ANDROID STUDIO

Figure 2-2. SDK Platforms

When you get to the SDK window, enable the "Show Package Details" option so you
can see a more detailed view of each API level. We don’t need to download everything in
the SDK window. We will get only the items we need.
SDK levels or platform numbers are specific versions of Android. Android 10 is
API level 29, Android 9 or “Pie” is API level 28, Android 8 or “Oreo” is API levels 26
and 27, and Nougat is API levels 24 and 25. You don’t need to memorize the platform
numbers, at least not anymore because the IDE shows the platform number with the
corresponding Android nickname.
Download the API levels you want to target for your applications, but for the purpose
of this book, please download API level 29 (Android 10). That’s what we will use for the
sample projects. Make sure that together with the platforms, you will also download
"Google APIs Intel x86 Atom_64 System Image." We will need those when we get to the
part where we test run our applications.
Choosing an API level may not be a big deal right now because at this point, we’re
simply working with practice apps. When you plan to release your application to the
public, you may not be able to take this choice lightly. Choosing a minimum SDK or API
level for your app will determine how many people will be able to use your application.
At the time of writing, 17% of all Android devices are using “Marshmallow,” 19% for
“Nougat,” 29% for “Oreo,” and only 10% for “Pie”; the stats for Android 10 were not

12
CHAPTER 2 ANDROID STUDIO

out yet. These stats are from the dashboard page of the official Android website. It’s a
good idea to check these statistics from time to time; you can find it here: http://bit.ly/
droiddashboard.
We go next to the “SDK Tools” section, as shown in Figure 2-3.

Figure 2-3. SDK Tools

You don’t generally have to change anything on this window, but it wouldn’t hurt to
check if you have the tools, as shown in the following list, marked as “Installed”:

• Android SDK Build Tools

• Android SDK Platform Tools

• Android SDK Tools

13
CHAPTER 2 ANDROID STUDIO

• Android Emulator

• Support Repository

• HAXM Installer

Note If you are on the Linux platform, you cannot use HAXM even if you have an
Intel processor. KVM will be used in Linux instead of HAXM.

Once you’re happy with your selection, click the “OK” button to start downloading
the packages.

Hardware Acceleration
As you create applications, it will be useful to test and run it sometimes in order to get
immediate feedback and find out if it is running as expected or if it is running at all. To
do this, you will use either a physical or a virtual device. Each option has its pros and
cons, and you don’t have to choose one over the other; in fact, you will have to use both
options eventually.
An Android Virtual Device or AVD is an emulator where you can run your apps.
Running on an emulator can sometimes be slow; this is the reason why Google and Intel
came up with HAXM. It is an emulator acceleration tool that makes testing your app a bit
more bearable. This is definitely a boon to developers. That is if you are using a machine
that has an Intel processor which supports virtualization and that you are not on Linux.
But don’t worry if you’re not lucky enough to fall on that part of the pie, there are ways to
achieve emulator acceleration in Linux, as we’ll see later.
macOS users probably have it the easiest because HAXM is automatically installed
with Android Studio. They don’t have to do anything to get it; the installer took care of
that for them.
Windows users can get HAXM either by

• Downloading it from https://software.intel.com/en-us/android.


Install it like you would any other Windows software, double-click,
and follow the prompts.

• Alternatively, you can get HAXM via the SDK manager; this is the
recommended method.

14
Another Random Scribd Document
with Unrelated Content
ylleen ottanut; ryhdissä ja eleissä ilmeni sama varmuus kuin
kasvoissakin. Samaa soi äänikin, vaikka kyllä naisen sointisävyllä.

Hänen ensi silmäyksensä, pikainen ja tutkiva, tarkotti Margitia.


Mahdotonta arvata, mihin päätökseen tutkimus tuli. Sen jälkeen
ojensi hän Fabbelle kättä ja puhutteli häntä nimeltä. Kääntyessään
sitten Gudmund mestarin puoleen, paljasti hän päänsä, kumarsihe
kunnioittavasti hänelle ja sanoi:

— Mestari Gudmund Gudmundinpoika aseseppä! Isäni, Joulf


Slatte, olisi ollut teitä vastassa, jos olisi ollut kotona; mutta minä,
Dagny Joulfintytär, olen saanut käskyn lausua teille hänen
tervehdyksensä. Hän on pahoillaan, että teillä ja hänellä on
välillänne ratkaisematta jäänyt juttu, vaan ehkä vielä ehditte siitä
suullisesti sopia; hänen asiansa lievenee kumminkin varmaan siitä,
että hänen väkensä tarvitsee paljon aseita, ja että ne aseet, jotka
hän vei teiltä väkikaupoilla, muuten olisivat joutuneet petturin Bernt
von Mählen'in käsiin. Yömajanne on teille kuntoon-laadittuna
Skyttetorpin talossa; ja isäni, saatuaan kirjeen talon omistajalta,
ilmottaa että tämä mitä sydämmellisimmin ja pareilla
onnentoivotuksilla lausuu teitä tervetulleiksi majansa suojiin. Minua
on käsketty antamaan teille apua, mitä sattunette tarvitsemaan, ja
huomenaamulla esiytymään eteenne. Lopuksi täytyy minun mainita,
että näinä päivinä on Smoolannissa ilmaantunut levottomuutta, että
ulompana isäni valvottavissa olevaa aluetta maanteillä on
vaarallisempi liikkua kuin muuten, ja että te olette Joulf Slatten
vankeina niinkauvan kuin tätä tilaa kestää. Teillä on Skyttetorpissa
mies- ja naispalvelijoita varallenne hankittuina. Talo on tuolla
lehdikön takana. Jumalan haltuun!
Hän heitti hyvästit ja heilahtihe polulle kankaan harjua ajelemaan.
Matkustajat pääsivät muutaman minuutin päästä Skyttetorpiin. — Me
ollaan Joulf Slatten vankeja — huomatkaa se, mestari! sanoi Fabbe.
— Niin, sitähän minä aavistin, huokaili vanhus. Mutta lohdullista ja
turvallista on tietää, että talonomistaja on tohtori Svante.

Margit oli, niin pitkälle kuin voi, silmin seurannut Dagny


Joulfintytärtä. Margit tunsi itsensä melkein loukatuksi. Dagnyn silmä
oli pikimmältään vilaissut häneen… siinä kaikki! Oliko Dagny kaunis?
Toisen kaunis, toisen ruma, kuinka kunkin aisti vaatii; mutta
kieltämättä hän viettelee silmän puoleensa. Minnäköinen hänellä oli
nenä? Sitä ei Margit ollut havainnut, vaikka siirolla silmin katseli
tyttöä kaiken aikaa. Hänen nenänsä lienee ollut sitä laatua, joka ei
tee melua kasvoissa. Mimmoiset silmät? Margit ei tiennyt, olivatko
ne ruskeat vai siniset, mutta hänestä ne näyttivät semmoisilta, että
äkäinen koira heti paikalla olisi niiden edessä nöyränä köyristynyt.
XIX.

KAPINA JÖNKÖPINGISSÄ.

— Mitä kummia?… Haloo! Vahti ulos!

Näin huusi sotamies, joka ohjesäännönmukaisesti kävi vartioiden


Jönköpingin linnan vallikehällä, milloin hän ei, yhtä
ohjesäännönmukaisesti, poikennut tyhjään vankityrmään. Huuto oli
karjahdus, joka kerrassaan ajoi unen vartiopäällikön ja noiden
kolmen muun vallisankarin silmistä. He karkasivat ylös vallille
jousipyssyt ja miekat käsissään ja näkivät aamunkoitteessa
aseellisen joukon samoovan kangasta eteenpäin. Mitä joukkoa tuo
olikaan? Eipä suotta surtavia! Näkyyhän siellä joukossa monta tuiki
tuttua naamaa. Jönköpingiläisiähän ne ovat ja etupäässä käy Aadam
Klase, vaikkei häntä ennen ole nähty näin ylellisissä asetamineissa.
Seppiähän ne ovat kaupungista. Ja siinä astelee tynnyrinvannehtija
sälleineen. Mutta tuommoinen liuta talonpoikia keihäineen,
kirveineen! Kai tässä sentään piru on irralla. Nostosilta ylös! — Ei se
olekaan tänä yönä ollut laskettuna. — Onko portti lukossa? — On,
mutta lukko on huono. — Jousipyssy vireille, vasama varalle! Tähtää
Aadam Klasea, mutta älä ammu ennenkuin minä annan merkin!
Vartiopäällikkö juoksi vallipyssylle, joka lataamatta ulkoni portin
päältä. Hän karjaisi jyrisevällä äänellä:

Ystävät tai viholliset, kumpia lienettekään, tutut ja oudot, mitä te


tahdotte?

Aadam Klase vastaa hänkin jyryäänellä: Avaja portti!

— Vai vielä! ärjäisi vartiopäällikkö; onko kuninkaan portti sun


käskyvaltasi alla? Sano selvään, mitä tahdotte, sinä ja te muut, tai
lähtekää tiehenne täältä!

Jonni Torstinpoika, sepänsälli, levitti liehumaan lipun, jonka


valkopohjalla oli sinikirjaimissa luettavana sana „Sion“. Tämä oli
rynnäkön merkkinä uudestikastajain, pikkuparvelle, joka kulki
kapinajoukon etuväkenä. Aadam Klase, perässään muut, riensi
esiin, hyppäsi alas valliojaan, kiipesi ylös toiselta puolen ja nosti juuri
päätänsä ja rintaansa maapenkereen takaa, kun vasama singahti
hänen kaulansa läpi, ja mies kuolemaisillaan vierähti ojaan. Sinne
myös valkoinen lippu pysähtyi, kun sen kantaja vaipui polvilleen
kaatuneen ystävänsä viereen ja huudahti: Aadam, Aadam, Jumalan
pyhä marttiira! — Aadamin kuolemaan sammui se hurja toivo, että
seitsenkunta anabaptistia jumalallisen ihmeen kautta saisi aseman
haltuunsa.

Mutta eipä aikaakaan, kun jo muita kapinamiehiä ilmaantui


paikalle paljo, ja niiden tieltä sulut särkyi, esteet murtui. Gudmundin
ja muiden seppien pajoista saatiin, moukareita porttia jyskyttämään.
Se lentää särähti auki. Linnanpihalle ja vallille ja ylös linnantorniin
syöksähti tulvanaan pari satakuntaa käsityöläisiä ja talonpoikia.

*****
Jönköpingin tori täyteen ahdettuna ihmisiä. Lähinnä raatihuoneen
portaita viisi kuusi haarniskoitua ratsumiestä, kypäreillään
sulkatöyhdöt tai muita merkkejä. Ne ovat vapaasukuisia
Länsigöötanmaalta, valtiohovimestarin Tuure Jönsinpojan ystäviä. Ja
heidän seurassaan on nuori herra Arvi Niilonpoika, joka
aamunkoitossa oli ratsain ajanut kaupunkiin niiden talonpoikain
etupäässä, jotka olivat linnaa rynnäköimässä.

Raatihuoneen seinäparvelle astuu samoin haarniskoitu mies,


läänitetty herra pormestari Niilo Arvinpoika, iso paperikääry kädessä.
Tuota tuttua, iloista, ovelaa naamaa tervehdittiin suosiohuudoilla.
Hän lausuu muutaman sanan ja lukee sitte selvällä äänellä. Mitä hän
luki, sen voipi uudestaan lukea sen ajan historiasta. Se oli kirje,
hänen oma kirjottamansa, mutta Smoolannin rahvaan nimessä.
Tämä valitti niitä raskaita veroja, joita ehtimiseen oli täytynyt
suorittaa kuninkaan voudeille sillä tekosyyllä että muka valtion velka
oli maksettava; mutta velka jäi kun jäikin maksamatta. Edelleen valitti
rahvas että väärää oppia oli maahan tuotu ja levitetty, pyhiä tapoja
oli lakkautettu, luostareita autioksi heitetty, kirkkoja ryöstetty, piispoja
ja esipappeja, joiden piti jumalanpalvelusta ylläpitää, maasta
karkotettu. Annapa tätä menoa kestää, pian kansa nääntyy nälkään
ja surkeuteen ja, mikä pahempi, joutuu pakanuuteen, kirouksen alle
ja kadotukseen. Ja kun ei muu ole näyttänyt tehoovan, on yhteinen
kansa Smoolannissa päättänyt tehdä samaa mitä Ruotsin kansa
ennenkin on tehnyt: vastata väkivaltaan väkivallalla. Gösta kuningas
on häijynilkeän Kristian kuninkaan vertainen ja kohdeltakoon häntä
samoin tuin tuotakin. Ja kehottipa siis Smoolannin talonpoikaiskansa
Jönköpingin oivia asukkaita, sekä Länsi- ja Itägöötanmaan aatelia ja
rahvasta yhtymään sen puolelle samaa asiaa ajamaan. Epäilemättä
ylämaidenkin kihlakunnat sen tekisivät, joten hyvällä toivolla voisi
odottaa sortovaltiaan karkotusta. Luettuaan kirjotuksensa loppuun
lisäsi pormestari, että kehotuskirjeet jo oli pantu menemään
molempiin Göötanmaihin, joissa aateli ja talollisväestö jo oli valmiina
kapinantekoon. Hän kiitti Jönköpingin hyvää porvaristoa siitä että se
oli kuultaviinsa ottanut sorrettujen maanmiestensä valitushuudot ja
sanoi varmaan uskovansa että päättäväisyys ja sopumieli toisi
turvallisen ja joutuisan voiton.

*****

Jönköpingissä kävikin kapinan-nosto helpommin kuin mitä Niilo


Arvinpoika itsekään oli arvannut. Hän oli odottanut Laurilta ja hänen
puolueeltaan vastarintaa sekä siltävaraa ryhtynyt toimiin sen
kukistamiseksi. Mutta Lauri maisteri olikin seisonut torilla kuulijain
joukossa ja näyttänyt sangen tyytyväiseltä. Ja kun pormestari
päivemmällä pyysi päästä keskusteluun hänen kanssaan, lausui hän
ei aikovansa nostaa sormeakaan Gösta kuninkaan hyväksi, joka
hänenkin mielestään oli sortovaltias ihan yhtä paha kuin Kristian
kuningas, ellei pahempi. Mutta hän, Lauri, ei myöskään tahtonut olla
missään tekemisissä vasta alkaneen kapinan kanssa, koska hän ei
aikonut vetää iestä yhdessä paavilaisten kanssa eikä istua niillä
lavitsoilla, joilla pilkkaajat istuvat.

Tämän lausui Lauri vilpittömässä mielessä, niinkuin hän


muutenkin harvoin povitaskuun piilotti todellista mieltänsä. Hän tiesi
tunnossaan että hän tahtoessaan kykeni pontevasti esiintymään,
sillä hänellä oli kaunopuheisuus sitä laatua, joka on omansa suureen
joukkoon tepsimään, ja kova ääni, joka saattoi puheen samalla
tuhansien kuultaviin, eikä hän voinut olla mielihyvällä näkemättä sitä
ihailevaa ihmetystä, jonka pitkä roteva vartalonsa, varma ryhtinsä ja
tavaton ruumiinvoimansa oli hänelle suurelta joukolta tuottanut.
Mutta Gösta kuningas ja tämän hallitustoimet alkoivat päivä päivältä
häntä yhä enemmin suututtaa. Laurin silmissä kuningas oli salainen
jumalankieltäjä ja materialisti, joka ryösti pyhältä kirkolta sen tavarat
ja oikeastaan tähän tarkotukseen käytti uskonpuhdistuksen liikettä.

Lauri Gudmundinpoika oli vuosien kuluessa suunnitellut itselleen


valmiiksi valtiollisen ja kirkollisen rakennelman, joka, vaikka hänen
mielestään lutherilainen, ainakin perusteeltaan, oli kokonaan
uskonpuhdistuksen johtajain aatteista eriävä. Tuota hän ei tehnyt
ainoastaan tyydyttääkseen mieltänsä, vaan hänen aikeensa oli
todella panna se toimeen. Minkä kerran oikeana pitää, onhan se
pelkäämättä ja omaa tai muiden mukavuutta katsomatta toteen
pantava, ja jos nyt siksi kävisi, että paavin ystävät ja Gösta
kuninkaan puoluelaiset keskenään sotisivat ja toisiaan raatelisivat,
pitäisihän erään kolmannen miehen sitä helpommin voida tuumansa
toteuttaa. Lauri ei suinkaan tahtonut, että kirkko mitään menettäisi
aineellisesta voimastaan. Päinvastoin tahtoi hän että sen hallussa
olisi kultaa ja tavaraa enemmän kuin kaikilla kuninkailla,
aatelismiehillä ja kaupungeilla yhteensä. Sellaiseksi kuin
Gregoriukset ja Innocentiukset olivat käsittäneet roomalais-katolista
kirkkoa, valta-asemaan nähden, sellaista kirkkoa hänkin tahtoi,
vaikka enemmän kansanvaltaiseen suuntaan kallistuvaa. Kirkko oli
Laurin mielestä itse pyhä kristikunta, jäsenneltynä kansaksi ja
papistoksi: papiston tehtävänä olisi asiain hoito ja kansan opetus,
kansan tulisi noudattaa papiston johtoa, mutta valveillaan ja
tarkistellen, voidakseen — sillä siihen sillä pitäisi oleman oikeus —
moittia paimenten elämää ja osottaa julki kelvottomat. Yleisen kirkon
pitäisi oleman eri kansankirkoista yhdistynyt ruumis ja jokaisella
kansankirkolla pitäisi hallitsijanaan oleman, ei kuningas tai ruhtinas,
vaan ylimmäinen pappi, jonka palvelijana kuninkaan tulisi olla
kaikissa uskonnollisissa ja siveydellisissä asioissa, ja koska nämä
usein likeltä liittyvät valtiollisiin asioihin, jopa usein niin läheltä, että
ovat niistä erottamattomat, niin älköön kuningas, mitä valtio-
oloihinkaan tulee, mitään päätöstä toimeen panko, neuvoston ja
valtiosäätyjen sitä ennen siihen suostumatta; ja neuvostoon
kuulukoon papiston paraimmat, säätyjen kokouksiin lähettäköön
kristillinen kansa edustajiansa. Opin tulisi olla lutherilaisella pohjalla
pienimpiin eriseikkoihin asti mitä tarkimmin kaavailtu ja säännöstelty
dogmatiikka, ankara uskonopinohjelma, josta jokainen poikkeus olisi
samalla rangaistava harhaoppina ja isänmaan petoksena. Gösta
kuningas mahtoi jättää kirkon omaisuuden rauhaan ja sen sijaan
kruunun haltuun korjata aateliston maatilukset. Aateli oli menettänyt
olemisensa oikeuden. Tämä oikeus perustui ratsupalvelukseen,
mutta tämän suorittamisessa oli sekä herra Tuure Jönsinpoika Roos
että aatelisto yleensä velvollisuutensa rikkonut. Jos ratsuväkeä
tarvitaan, ei olisi ensinkään vaikea saada jalkeille semmoista, jopa
kurinollistakin, joka saaden palkkansa kruunulta aina olisi valmiina
kruunua palvelemaan. Mutta Ruotsin sotavoima on aina ollut
talonpoikain tarmossa ja käsissä, ja jos talonpoikainen jalkaväki
joskus väistyy hevosten ja peitsien edestä, todistaa se vain
jalkaväeltä vielä puuttuvan tarpeellista hajautumista. Miksei Ruotsin
talonpoikaisjoukot kelpaisi siinä kuin sveitsiläisetkin, jotka kaasivat
Euroopan uljaimmat ritariparvikunnat?

Semmoisia tuumia Lauri maisteri itsekseen hauteli, ja hän toivoi


päivän tuloa jolloin ne julistettaisiin kaikelle kansalle sillä
hengenvoimalla, jota hän oli näyttänyt oppi-istuimilla ja
saarnastuoleissa, ja sillä ruumiinvoimalla, jolla hänen kaltaisensa
koura sotanuijaa heiluttaa. Lauria miellytti jollain myötätunnon
viehäkkeellä se mellastusraivo, jonka valtoihin hänen ystävänsä
Drysius toisinaan joutui. Haluttipa häntäkin huimia ympärilleen ja
murskata eteensä sattuvia esteitä, eipä sentään pöytiä ja lavitsoita,
olutsarkkoja ja akkunoita, vaan muita, hänen arvonsa mukaisempia
esineitä. Hän iloitsi ajatellessaan, että hän jonakin päivänä, puettuna
vankimpiin varusteihin, mitä vanhoissa Gudmundinpojan pajoissa oli
taottu, karkaisi paavilaisten tai kustavilaisten vihollisjoukkojen
kimppuun, perässään talonpoikia, joiden parvivaajat kahden sylen
pituisilla keihäillään, jommoisia hän oli Sveitsissä nähnyt, kaataisivat
kaikki allensa.

Hänen ei tarvinnut käydä jouten tuota päivää odotellessaan.


Hänellä oli kädet täynnä tehtäviä. Enimmin kuitenkin häntä
huolestutti ja ajattelutti Gudmund mestarin käännytys. Hän oli kovin
pahoillaan ukon itsepäisyydestä. Häntä vaivasi se ajatus, että hän,
joka tahtoi käännyttää koko maailman, ei vielä ollut saanut omaa
isäänsä kääntymykseen. Pitäisihän ensin lakaista oman
kynnyksensä alusta puhtaaksi, ennenkuin lähtee muiden laattioita
luutimaan. Hän kirjotteli nyt paraikaa erästä uskontunnustusta,
Confessio Innecopensis, jossa oli viisikymmentä eri pykälää, ja hän
oli vahvasti päättänyt, ottakoon jos kuinka kovalle, pakottaa
Gudmund mestarin koulunsa penkille istumaan, siellä kuulemaan,
perästä hokemaan, kertomaan ja tunnustamaan näitä. Läksyjen luku
oli alettava heti mestarin palattua Veksjöstä, ja Lauri sanoi sen
takaavansa, ettei isä ja sisar saisi siellä monta aikaa viipyä, eikä
mitään tuhrustuksia saataisi sinne tuomiokirkkoon hommata.

*****

Ensi päivinä siitä kun Jönköpingissä kapina syntyi, näytti


pormestari huolettomalta ja voiton toivossa iloitsevalta. Tuli kirje
hänen Arvi pojaltaan, että tälle oli onnistunut eräs kapinallisten
virittämä juoni: Gösta kuninkaan sisaren, Hoyan kreivinnan, joka oli
paluumatkalla Lauenburgista Tukholmaan, oli hän siepannut
vangiksi seurueineen sekä kuninkaan sihteerin Wolf Gylerin.
Vartioväen saatteissa oli tuo nyt matkalla Tuure Jönsinpojan taloon
Lindholmiin. Olipa siis saatu arvokas panttivanki, jos vasta sellaista
tarvittaisiin, vaikkei se ensinkään luultavalta näyttänyt. Kirje kertoi
edelleen, että talonpojat tahtoivat surmata tuon vihatun vallasnaisen
ja että Arvi hädin tuskin sai hänet heidän raivoltaan suojatuksi. Hän
oli kaikittain koettanut ritarillisesti kohdella ylhäistä vankiansa, oli
koettanut häntä rauhottaa, vieläpä huvitellakin, ja hän tunsi
mielestään siinä joinkin määrin onnistuneensakin. Erottaissa oli
kreivinna kiittänyt ja vakuuttanut hänelle suosiollisuuttansa.

Kahdentenatoista päivänä kapinan alusta lukien tuli Arvi itse


Jönköpingiin. Hän toi hämmästyttäviä ja masentavia tietoja. Hänen
olisi pitänyt tulla parintuhannen talonpojan etupäässä, samotakseen,
herra Tuure Jönsinpojan sotatuuman mukaan, näiden kanssa
Itägöötanmaahan kapinan lieskaa laajemmalle lietsomaan. Miehiä
olikin jo lähtenyt liikkeelle Tvetan, Vistan, Östbon, Sunnerbon,
Vestbon, Vestran sekä pohjois- ja etelä-Vedbon kihlakunnista
yhtyäkseen sovitulla paikalla; mutta useimmat olivat palanneet
puolitiestä ja hajonneet kotipuolilleen. Syynä tähän käänteeseen oli
Slatte — Slatte, josta herra Tuure Jönsinpoika vakuutti, että hän oli
saatu kapinan puolelle ja että hän tulisi kaikella voimallaan sitä
tukemaan! Slatte ja hänen alipäälliköltään oli nähty liikkuvan
kihlakunnissa, mukanaan vahvasti asestettuja metsänkävijäjoukkoja,
ja selvin sanoin oli hän ilmottanut aikovansa sammuttaa kapinan,
ellei se itsestään sammuisi. Taikauskoinen kunnioitus tai kammo
Slattea kohtaan ja järjettömät luulot hänen mahtavuudestaan olivat
yleisesti juurtuneet Smoolannin rahvaan mieliin.

Saamatta oli vain enää sanoma Länsigöötanmaalta. Siellä olivat


raatiherrat ja muut etevimmät aateliston miehet olleet koolla
Skarassa, silloin kun tuo Niilo Arvinpojan laatima kirje
smoolantilaisilta sinne saapui. He olivat heti vastanneet, että kirjeen
sisältö otettaisiin punnittavaksi Larvin nummella 20 p. huhtikuuta
pidettävässä kokouksessa, jonne saapuisi Länsigöötanmaan koko
aatelisto sekä kaupunkilaisia ja yhteistä kansaa sieltä. Kuinka
vastaus tulisi kuulumaan, siitä ei pormestari vähääkään ollut
epäilyksissään, kun miehet semmoiset kuin piispa Harald
Maunonpoika, valtioneuvokset ja läänitysmiehet Mauno
Bryntenpoika Liljehöök, Tuure Erkinpoika Bjelke, Tord Bonde ja
Aksel Posse, puhumattakaan herra Tuure Jönsinpojasta, olivat
hänelle varmaksi väittäneet että tie oli valmiiksi tasotettuna.
Länsigöötan vapaasukuiset, kaupungit ja talolliset vastaisivat
yksimielisesti myöntämällä.

Mutta jo kokouksen edellisenä päivänä toi pikalähetti pormestarille


lentokirjeen, jossa hän kummeksien näki allekirjotuksen: "Svante von
Reichenbach, harpunsoittaja". Siinä oli muun muassa luettavana:
"Minä tiedän, mitä Länsigöötan maakansa on vastaava: jyrkästi ei!"

— Kuinka se on mahdollista! huudahti pormestari kelmeten.

— Ehkä Svante tietääkin asiat tarkemmin, kuin korkeat


aatelisherrat, sanoi Arvi; onhan hän jo kuukausittain vaeltanut
Länsigöötan tiet ja polut ristin rastin, keskustellen talonpoikain
kanssa. Jos nyt käy kuten hän ennustaa, on hän itse enemmän kuin
kukaan muu ollut siihen syypäänä. Hän on Gösta kuninkaan miehiä
ja kiihottelee mieliä tämän eduksi. Olisinpa minä hänet kohdannut,
olisi mies, paraiten käyden, saanut lähteä Hoyan kreivinään
matkassa Lindholmiin. Mutta mitäs hän muuta kirjottaa?

— Sanoo lähettäneensä Gösta kuninkaalle supliikin, anoen siinä


armoa minulle, sinulle ja Jönköpingin asujaimille yhteisesti. Onko
minun lukeminen tätä hävyttömyydeksi vai… vai ansaitsemattomaksi
armeliaisuudeksi?

Eipä mennyt montakaan päivää, niin Svante tohtorin ennustus kävi


toteen, ja tiedon siitä todisti juuri se mies, jota herra Tuure
Jönsinpoika oli kuninkaaksi ehdottanut, herra Mauno Bryntenpoika
Liljehöök. Yötä päivää yhtäpäätä oli hän ratsastanut tuomaan
hirmusanomaa Jönköpingiin. Hän tiesi lisää että herra Tuure
Jönsinpoika ja Mauno piispa jo olivat matkalla Tanskaan, siellä
saadakseen turvaa.

— Entäs te itse? kysyi pormestari, seisoen salissaan pesävalkean


ääressä.

— Kohtaloni on teidän vallassanne, Niilo Arvinpoika. Minun teille


kirjottamani kirjeet todistavat osallisuuttani tässä asiassa, mutta ne
ovatkin ainoat todisteet. Parasta olisi sekä minulle että teille; jos
polttaisitte ne. Kas tässä teidän kirjeenne minulle; jätän ne takaisin
vastikkeen verosta. Syöttäkää ne samoille liekeille! Kun se on tehty,
ei ole minulla enää paon syytä. Vaadin herrainpäivät kutsuttaviksi ja
vetoan niiden päätökseen. Tehkää te samoin!

— Kiitos neuvosta, sanoi Niilo Arvinpoika kuivasti. En aio minä sitä


noudattaa. Ja pitäkää te nuo kirjeet! Olkoot kirjeet olemassa tai
olematta, rikollisuuteni — jos se sana sopii — on sittekin täydelleen
todistettu. Herra Tuure Jönsinpoika ja te olette siitä kyllä huolta
pitäneet. Olette lykänneet minut eteenne. Olette valheilla ja
olemattomia uskotellen viekotelleet minut asettumaan hurjan
hankkeen etupäähän. No niin. Aikeeni ei suinkaan ole purkaa
parjauksia teidän silmiinne ja syytää syy kokonaan teidän päällenne.
Minä olen mies itse puolestani ja vastaan teoistani.
— Sanoin kohtaloni olevan teidän kädessänne. En voi teiltä vaatia
ystäväpalveluksia, muita kysyn kuitenkin toistamiseen, tahdotteko
polttaa kirjeeni ja pelastaa minut! Ette tekisi sitä turhaan.

— En arvatenkaan, vastasi Niilo Arvinpoika ivallisesti. Te olette


rehellisyydessä herra Tuure Jönsinpojan vertainen. Joka teihin
kahteen luottaa, se ei petteeseen joudu. Mutta tahdon kuulla
rukouksenne niinkuin semmoista sopinee kuulla.

Pormestari meni viereis-huoneeseen ja tuli hetkisen perästä,


kantaen kopallista papereita. Hän tyhjensi kopan takkavalkeaan.

— Teidän kirjotuksenne samoin kuin Niilo Olavinpojan [Vingen] ja


Tuure
Erkinpojan [Bjelken] ovat nyt hyvässä tallessa.

— Ikuinen kiitos!

— Ei kannata kiittää.

Niin, eipä todella kannattanutkaan. Pormestari polttikin vain


vanhoja raastuvan-asiakirjoja ja kirjeitä, jotka eivät rahtuakaan
koskeneet puheenalaista juttua. Mutta mainittujen herrain kirjeet
säilytti hän tarkassa tallessa ja lähetti ne Gösta kuninkaalle sekä
samassa kirjotuksen, jossa hän tunnusti itsensä täysin syylliseksi,
anoi armoa ja lupasi omasta sekä Jönköpingin raatimiesten ja
väestön puolesta uutta, vilpitöntä uskollisuutta. Vastaukseksi hän ja
he saivat kuninkaalta suosiollisuuden ja suojeluksen lupauksen.
Mutta Mauno Bryntenpoika sai kuten tiedetään, päällänsä sovittaa
syyllisyytensä ja yrityksensä valhettelemalla päästä syyttömäksi.
XX.

HARPUNSOITTAJAN VIIMEINEN RETKI.

Oli kaunis ilta lopulla huhtikuuta. Harpunsoittaja Svante vaelsi,


niinkuin alussa kertomustamme, tietä Laga-laakson läpi, mutta nyt
eteläänpäin. Hän oli viipynyt muutamia päiviä Talavidissa, jossa
tapasi Fabben, sattumalta tulleena, tai liekö tuo tahallaan tulonsa
siihen aikaan sovittanut. Fabbella oli hänelle paljo salaista kertomista
Gudmund mestarista ja Margitista. Pormestari Niilo Arvinpoika oli
käynyt terveisillä Svante tohtorin luona, sydämellisesti kiittänyt häntä
oivain palvelusten teosta ja saanut häneltä Arvia varten
matkasuunnitelman, sillä päätetty asia oli että Arvi oli lähtevä
pitemmälle ulkomaan matkalle. Gunnarin hoitajan ja opettajan, Sven
kirkkoherran seurassa oli tohtori viettänyt hauskan, rauhallisen
päivän, puhellen kaikkea muuta, paitsi valtioseikoista. He olivat
jutelleet klassillisista kirjailijoista ja niiden selittelijöistä, olivat kilvan
kiitäneet ihailemaan kauniita kohtia Rooman runouden alalla;
luostarin kirkkotarhassa, joka, vaikka Laurin toimesta
hautapatsaistaan paljaaksi riistettynä, kuitenkin suloisella
salavoimalla viehätti sydäntä, olivat he ääneti istuneet esiveli
Mathiaksen haudalla, jonka ystävät olivat keväänkukkasilla
somistaneet.

Heidän sieltä lähtiessään, sanoi tohtori: Jos, veli Sven, kohdakkoin


saanet kuulla, että neljäs jäsenemme "Suoraan sydämestä" seurasta
ja hänen tyttärensä eivät enää ole Veksjössä, niin ole aivan huoleti ja
luota minun sanoihini, että he ovat hyvässä turvassa, jossa saavat
kylläkseen levätä. Jos tahdot ilahuttaa heitä kirjeellä, niin jätä se
osotetta vailla Talavidin Birgitille. Kyllä se sitte saapuu määränsä
perille.

— Hyvä! Kylläpä Gudmund veli tosiaan lepopaikkaa kaipasikin.

Svante oli tavannut poikansa terveenä ja iloisena. Gunnar oli nyt


kahdentoista vuotinen, mutta näytti neljäätoista lähenevältä.
Vaaleanverevä, sorja, solakka, tiedonhaluinen poika. Hän mieli
seurata isäänsä matkalle joka oli edessä, ja hän pääsi mukaan sitä
kernaammin, koska harpunsoittaja itse halusi hänen seuraansa.

Mikä ihana päivä! Kuukausia oli kulunut Svantelta ankaran,


hellittämättömän, vaarallisen työn puuhissa teillä ja poluilla,
kirkkomäillä, taloissa ja tuvissa Länsigöötan ja Smoolannin
maakunnissa. Mutta niinpä olikin mitä sukkelimmin suunniteltu
kapinanjuoni saatu alkuunsa tapetuksi, juoni jota tuki moni
valtakunnan mahtavin aatelismies, jota piispain valta julki tai salaa
suosi, joka vetosi uskonnollisiin tapoihin ja kiihkoihin. Vaikka
harpunsoittaja omaksi ansiokseen tuskin luki muuta kuin hyvän
tahtonsa osaltaan toimia kapinan ehkäisemiseksi ja kiitti yksistään
Gösta kuninkaan urhoutta ja älyä asian hyvästä päätöksestä, oli hän
kuitenkin onnellinen tietäessään velvollisuutensa täyttäneensä. Hän
kulki reippaasti, pontevin askelin, ja saattoi, mitä ei ollut aikoihin
voinut, taaskin koko sydämellään antautua näköjen viehätyksille,
joita silmänsä kohtasi. Hänestä oli toisinaan, ikäänkuin koko sielunsa
olisi niihin sulanut: se kevätelämä, joka pyrki, ponnisti, nautti ja iloitsi
yläilmoissa, salossa, nurmella, oli ikäänkuin uhkuvinaan hänen
povensa pohjasta, ja entäs kun hänellä oli armas, kelpo Gunnarinsa
vieressään!

Gunnarilla oli paljo havaittavaa ja kyseltävää. Siinä lensi varis


oljenkorsia nokassa. Taisipa pesää laatia. Tuolta ylhäältä kuului
mäkätystä, ja samassa nuolen nopsana laskea sujahti jotain vinoon
vetiselle luhdalle. Mikä se oli? Taivaanvuohi, liukas lintu, jolle
ainoastaan nimeltään oli sukua se vilkas nelijalkainen,
takkukarvainen elukka, joka iloisena ja rajunakin hyppelee köyhän
mökin ympärillä kivikosta ruokaansa etsien — maa-vuohi. Vuohien
ääntä, mäkättäköön yläilmoissa tai määkyköön kivimäellä,
sointuisampi oli käen kukunta, joka juuri kuului kuusen latvasta.
Nurmella vilkkuu visertäviä keltapallosia: ne ovat keltavästäräkkejä.
Leivonen lennähtää ylös ruispellosta ja livertelee ihan matkamiesten
päiden kohdalla. Kuinka se iloinneekaan elämästä! Tätyruoho tuikkii
tummansinisillä silmillään nuoren nurmi-oraikon keskeltä, joka on
nähdä kuin viheriää utua. Lieneekö kukilla vaistoa olemisestaan?
Kaukaa ylhäältä torvien ääntä. Monisiipinen lumiaura viiltelee
valkoharmaiden utupilvien halki. Siellä tulee parvi muuttolintuja
Egyptin maalta — kurkia. Poika laskee niitä kaksiviidettä. "Vilu! vilu!"
kuuluu kirkuvan kukkivasta haavasta. Gunnar hiipii puun alle ja
näkee kirjavapilkkuisen pikkulinnun vääntelevän kaulaansa joka
suunnalle. Se on käenpiika, joka muistuttaa paljo vilua, nälkää ja
puutetta kärsittävän, muistuttaa meitä huojentamaan köyhyyden
kärsimyksiä, vaatettamaan kerjäläisiä, lohduttamaan murheellisia.
Tietäneekö lintu itse tätä sanovansa? Siinä kyllä, että me tiedämme
hänen sitä sanovan. Luonto lausuu templistään salaviisauden
sanoja, jotka hän jättää pappinsa, ihmisen selitettäviksi.
Gunnar tuntee, ettei pidä alituisilla kysymyksillä isää vaivata. Hän
antaa hänen väliin olla itsekseen. Harpunsoittaja käy silloin uneksien
valveillaan; tuntee vajonneensa maailmansielun sisään tai
itsetajuisena hiukeena heiluvansa auringonvalon tuoksussa, joka
asuilee pilvien edustalla, joiden harsossa tuo suuri tähti nyt
verkalleen vaipuu näköpiirin taa. Tai hän oleskelee muistelmissaan.
Tänään niitä tulee virtanaan ja, ihme! ne tulevat järjestetyin sarjoin
puolimuistelon ja unheen salaperäisiltä seuduilta, olottomuuden
äärimailta. Ne tulevat juhlakulkueessa, useat säteilevä kirkkaus
kehänään, toiset verhottuina harsoon, joka ohenee ja haihtuu.
Nuoruuden muistot tulevat, poika-ijän muistot, ja mitä hän vähimmin
vartoikaan, saapuu muisto, hahmoltaan lapsi, joka osottaa kehtoa
äsken jättämäänsä, ja tuonnempana jotain, joka ei ole valoa eikä
pimeää, vaan on näköjään kuin sokean pilkun valaisematon, väritön,
eikä siltä tumma pinta.

Auringon laskiessa istuivat levähtämään isä ja poika kalliolle


maantien vierelle. Harpunsoittaja kiertää käsivartensa Gunnarin
kaulalle, poika panee kätensä isän vyötäisille. Molemmat katselevat
kauvas eteensä sitä kulta- ja purppurakaistaa, josta metsä laskee
osan loistamaan näkyviin, tuolta missä tie katoo kuusikon
rinteeseen. Kultarinta-kerttu visertelee surumielistä virttään,
lehtokurpan omituisen miellyttävä ääni kajahtelee puiden väliin
kuulumattomiin. Mutta mitäs tuo on? Se soipi syvää säveltä,
kajahtelee kaukaa kuin hopeakellon helinä henkimaailman
kupukaarrelmista. Se virtaa hiljaa helisten lännen auterista, vilkkaista
valonväreistä joita niissä kimaltelee. Onko tuo kuulonharhaa vai
tapahtuuko, mitä satu kertoilee, että aurinko joskus laskiessaan
soinnahtelee, että sen viime säteet jousina juoksevat edestakaisin
näkymättömäin sädekielten poikki, maan päivän ja yön rajaviivalla?
Harpunsoittaja sen kuulee; Gunnar kuulee myös, sillä toisen tunne-
vaistoilla on sointipohjansa toisen sielussa.

Harpunsoittaja näkee valonheijastusten elelevän poikansa


kasvoilla, sillä välin kuin tämän silmä etsii taruja iltaruskosta. Ilmiö
ihana nähdä, mutta ihanuuteen sekaantuu murhemieltä. Tämä,
kuten kaikki hänen syvällisemmät tunteensa, elävämmät hengen
näkönsä, sääntyy säveliksi, huokuu virtenä povesta:

Oi luonto, kärsivällisyytes on, kuin aalto, josta luot sa,


pohjaton. Mut eikö kätes vihdoin väsy vain mukailemaan tääll'
ajan saarella, mit' ihaillen näit aatteen maailmassa, kun kuolla
täytyy luomais kauneimpain? Mitenkä kätes empimättä vois
kuvuille kukkain, lapsen kasvoille valella taivaan hohtoa, kun
se pois, nopeemmin illan ruskoa, hälvenee? Nuo hennot
kaunistit sa enkeliks' — vaan tuoni vei ne, äiti, saalihiks'! Oi
näitkö alla kuolon seppeleen otsalla kuihtuneella säilyneen,
miehen tai naisen, loistos armaan? Ei! Nuo taivaan taimet
tuonen halla vei. Luot taimen taimen viereen yhtenään, ne
kuihtuu ehtimättä hedelmään. Sä kudot; yhä pärköö
kankahas, vaan juoksemast' ei taukoo sukkulas. Kas, ettei
aikaa mieles muuttunut ja julmaan, turhaan leikkiin suuttunut,
et toivotonna luomisistas' laannut — ja kuolon tyhjyys vaan
ois vallan saanut!

Pian tulevat ne vaaralliset vuodet. Ylevin ja suloisin ihmiskauneus


— se jonka vienoissa suonikudelmissa veri soluu puhtaana kuin
taivaan mesi, levitellen lämpöä, joka ei ole eläimellisen himon
hehkua — se on riutuva pois. Ja sen mukana riutuu sydämen
itseään tajuamaton viaton puhtaus. Ne ovat kuihtuvia kevätkukkia.
Missä hahmossa on naisenlempi ensinnä kohtaava Gunnaria? Siitä
paljo riippuu. Harpunsoittaja muisteli iltaa, jolloin hän, tähtien
säkenöivä valo korkealla yllänsä, kanniskeli poikasta käsivarrellaan,
ja hän muisti miten laulu silloin itsestään valahti hänen huulilleen:

Kohtalo yökuilustaan monen lähteen luopi': murheen karvas


lähde vaan terveyttä tuopi. Siitä siekin, poloinen, juomaan
joudut — tiedän sen. Herra, synnin soista varjele pojoista!

He alkoivat astella eteenpäin. Oli vain puolen tunnin matka jätettä


majapaikkaan. Kuu, joka auringon laskiessa nosti tuhankarvaisen
muotonsa kukkulain takaa idässä, kumotti jo valjusti yli seutujen.
Kuusen latvasta vähän matkaa korven sisältä viritti laulurastas
virttänsä, siksi sulavaa että täytyi seisahtua kuuntelemaan. — Voiko
kukaan noin laulaa, ellei hänellä ole sielu — sielu, jota Jumala
rakastaa? — Minä uskon, poikani, että sillä on sielu ja Jumala
rakastaa sitä. — Kuolematon sielu? — Kaikki sielut ovat
kuolemattomat; kaikki, mikä on, on katoamatonta. Kuolema on
muutos, muotojen hajotus, ei olinosien häviö, joista muodot
syntyivät. Elementit ovat sieluja.

He jatkoivat kulkuaan. Takaa kuului hevosten nelistystä. Illan valot


olivat himmenneet tai harmahtivat hopealle. Esineiden ulkohaamu ei
enää näyttänyt pyöreältä, vaan ne seisoivat varjokuvan kaltaisina,
milloin reunat revittyinä teräviin särmiin, milloin hiljakseen
himmenevin viivoin, ikäänkuin varjonäytelmässä. Tie häämötti
paikoin viluisessa valossa, josta se äkkiä hukkui ammottavaan
pimeään kuiluun. Kavionkapse läheni lähenemistään; Gunnar
kääntyi taaksensa ja nähdessään kuun kuultavan mustan
monikärkisen metsänreunan kohdalta, oli tämä hänestä
livahtavinaan likemmä ja kuiskivinaan hänelle jotain, saamatta sitä
sentään kuuluviin.
Yötuuli viuhui heikosti metsässä, sen huokaus kuului kuin
tuskaisen valittavalta. Hevosjuoksu läheni. — Isä, mitähän nuo
ratsumiehet lienevät, jotka perässämme ajavat? — Markkinaväkeä,
jotka tapansa mukaan kulkevat useampia yhdessä, tai ehkä
muutamia Slatten miehiä kiertoajollansa.

Usmasta, joka sankkana uhui rämeestä, kurottelihe pojan mielestä


ruumiskääreliinoja, tyhjin hihoin varotellen tai uhaten. Nyt ilmestyivät
etummaiset ratsumiehet tienpolvessa heti heidän takanaan. Toisia
tuli jälestä. Kuutamo välähteli asepuvuille, miekantupille,
keihäänkärjille. Satulat ja aseet kalahtelivat. Harpunsoittaja, pitäen
poikaa kädestä, pysähtyi nähdäkseen ratsumiesten ohiajoa.

Jalkamiesten kohdalla pidätti ensimmäinen miehistä, nykäisemällä


suitsesta hevostaan ja käännähtihe satulassa: Totta jumaliste! Herra
Tuure Jönsinpoika, tässä se mies on!

— Kuka? kysyi toinen ääni.

— Se jonka soisitte syvimpään helvettiin. Harpunsoittaja… Ettekö


häntä tunne?

— No taivahan isä! ärjähti roteva, rautapukuinen miehen olio


harvinaisen korkean hevosen selästä. Se on hän. Sainhan nyt
kumminkin vähäisen virvotusta matkallani.

Herra Tuure Jönsinpoika ajoi ihan Svanteen kiinni, kallistihe


satulasta alaspäin ja lausui melkein kuiskien: Tässä olen nyt —
maankarkulaisena sinun toimistasi ja oman sääliväisyyteni tähden,
sillä montakin kertaa on henkesi ollut minun käsissäni. Etkö luule,
että tiedän kuka olet? Etkö luule, että tiedän mitä tahdot? Hiljakseen
hiivit kansan suosioon ja leveältä, vankalta pohjalta pyrit halutun
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

textbookfull.com

You might also like