
    

    <?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://ocw.cs.pub.ro/courses/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://ocw.cs.pub.ro/courses/feed.php">
        <title>CS Open CourseWare smd:laboratoare</title>
        <description></description>
        <link>http://ocw.cs.pub.ro/courses/</link>
        <image rdf:resource="http://ocw.cs.pub.ro/courses/lib/tpl/arctic/images/favicon.ico" />
       <dc:date>2026-05-08T15:25:48+03:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/smd/laboratoare/00?rev=1615406100&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/smd/laboratoare/01?rev=1616003903&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/smd/laboratoare/02?rev=1616697702&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/smd/laboratoare/03?rev=1617890268&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/smd/laboratoare/04?rev=1620830784&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/smd/laboratoare/05?rev=1621365448&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/smd/laboratoare/06?rev=1621535448&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/smd/laboratoare/07?rev=1651091824&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/smd/laboratoare/08?rev=1620924662&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/smd/laboratoare/08_v_temp?rev=1555916326&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/smd/laboratoare/index?rev=1561029818&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://ocw.cs.pub.ro/courses/lib/tpl/arctic/images/favicon.ico">
        <title>CS Open CourseWare</title>
        <link>http://ocw.cs.pub.ro/courses/</link>
        <url>http://ocw.cs.pub.ro/courses/lib/tpl/arctic/images/favicon.ico</url>
    </image>
    <item rdf:about="http://ocw.cs.pub.ro/courses/smd/laboratoare/00?rev=1615406100&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-03-10T21:55:00+03:00</dc:date>
        <title>Lab 0. Setup</title>
        <link>http://ocw.cs.pub.ro/courses/smd/laboratoare/00?rev=1615406100&amp;do=diff</link>
        <description>Objectives:

	*  Create your Github Classroom repository (jump to section)
	*  Configure Android Studio, Android SDK and emulator (jump to section)
	*  Create a Hello World app and run it in the emulator (jump to section)
	*  Familiarize with basic git and create a pull request (jump to section)</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/smd/laboratoare/01?rev=1616003903&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-03-17T19:58:23+03:00</dc:date>
        <title>Lab 01. Introduction</title>
        <link>http://ocw.cs.pub.ro/courses/smd/laboratoare/01?rev=1616003903&amp;do=diff</link>
        <description>Lab 01. Introduction

Resources

	*  Android Developers Documentation
	*  Android Application Lifecycle

Prerequisites: Lab 0: Setup github and your environment

The code skeleton used from task#3:

	*   Github repository
	*  

Task 1 - Create and run an application

Create a new Android Project in Android Studio (Start a new Android Studio Project). In the first screen in the Phone and Tablet section, choose Empty Activity. On the sidebar on the left choose Project and open  java &gt; student.exam…</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/smd/laboratoare/02?rev=1616697702&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-03-25T20:41:42+03:00</dc:date>
        <title>Lab 02. Communication between Android components: Intents, Broadcast Receivers</title>
        <link>http://ocw.cs.pub.ro/courses/smd/laboratoare/02?rev=1616697702&amp;do=diff</link>
        <description>Objectives

	*  Learn how to communicate between Android components using Intents and Broadcast Receivers
	*  Learn how to listen for events from the system using Broadcast Receivers
	*  Use several types of Intents and Broadcast Receivers inside an app to communicate between activities and to start other apps.</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/smd/laboratoare/03?rev=1617890268&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-04-08T16:57:48+03:00</dc:date>
        <title>Lab 3. Android Services</title>
        <link>http://ocw.cs.pub.ro/courses/smd/laboratoare/03?rev=1617890268&amp;do=diff</link>
        <description>Objectives

	*  Learn the basics of how to perform background work in an Android app
	*  Understand the concept of Service as an Android component
	*  Use and differentiate between Started, Bound and Intent services
	*  Understand the services' lifecycle in relation with the app's and its activities' lifecycle</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/smd/laboratoare/04?rev=1620830784&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-05-12T17:46:24+03:00</dc:date>
        <title>Lab 4. Threading in Android</title>
        <link>http://ocw.cs.pub.ro/courses/smd/laboratoare/04?rev=1620830784&amp;do=diff</link>
        <description>Lab 4. Threading in Android

Objectives

	*  Learn to execute code on multiple threads in an Android app
	*  Understand and practice the basic way of multi-threading in Android using handlers, runnables and thread pools.
	*  Learn why AsyncTasks are not recommended to be used.</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/smd/laboratoare/05?rev=1621365448&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-05-18T22:17:28+03:00</dc:date>
        <title>Lab 5. HTTP and web services</title>
        <link>http://ocw.cs.pub.ro/courses/smd/laboratoare/05?rev=1621365448&amp;do=diff</link>
        <description>Lab 5. HTTP and web services

Objectives

	*   Learn to make secure network calls
	*   Understand and practice making network calls using HttpUrlConnection, HttpsUrlConnection
	*   Learn how to use an API using the Retrofit network library
	*   Extra: Securing the app by integrating Firebase authentication services</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/smd/laboratoare/06?rev=1621535448&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-05-20T21:30:48+03:00</dc:date>
        <title>Lab 6. Storage</title>
        <link>http://ocw.cs.pub.ro/courses/smd/laboratoare/06?rev=1621535448&amp;do=diff</link>
        <description>Objectives

	*  Learn about the Android data storage model
	*  Store data in several ways: available to other apps or private to your app
	*  Use shared preferences

Android storage model

Security of applications' data comes also from the sandboxing mechanism used by the Android system. Using it, not only the executed code is isolated from other apps, but also the data.</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/smd/laboratoare/07?rev=1651091824&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-04-27T23:37:04+03:00</dc:date>
        <title>Lab 7 - Cryptography</title>
        <link>http://ocw.cs.pub.ro/courses/smd/laboratoare/07?rev=1651091824&amp;do=diff</link>
        <description>Jetpack Security library

Objectives

	*  Protect the app's data using encryption
	*  Use Android's Keystore to generate and store cryptographic keys
	*  Protect the app's APK using signing
	*  Use Android's KeyStore to generate and store cryptographic keys and use them to sign an app
	*  Verify message integrity using HMAC (hash-based message authentication code)
		*  generate HMAC to sign a message
		*  verify HMAC to check that the received message was not modified</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/smd/laboratoare/08?rev=1620924662&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-05-13T19:51:02+03:00</dc:date>
        <title>Lab 8 - Cryptography 2</title>
        <link>http://ocw.cs.pub.ro/courses/smd/laboratoare/08?rev=1620924662&amp;do=diff</link>
        <description>Objectives

	*  Protect the app's APK using signing
	*  Use Android's KeyStore to generate and store cryptographic keys and use them to sign an app
	*  Verify message integrity using HMAC (hash-based message authentication code)
		*  generate HMAC to sign a message
		*  verify HMAC to check that the received message was not modified</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/smd/laboratoare/08_v_temp?rev=1555916326&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-04-22T09:58:46+03:00</dc:date>
        <title>Lab 8 - Cryptography 2</title>
        <link>http://ocw.cs.pub.ro/courses/smd/laboratoare/08_v_temp?rev=1555916326&amp;do=diff</link>
        <description>Objectives

	*  Protect the app's APK using signing
	*  Use Android's Keystore to generate and store cryptographic keys
	*  Use them to sign an app
	*  Generate HMAC to sign a message
	*  Verify HMAC to check message integrity

Application signing

If you want to install an application on Android, the apk must be digitally signed with a certificate. For example, when you test your application on the emulator, Android Studio signs the apk with a debug certificate. The first time when you run or d…</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/smd/laboratoare/index?rev=1561029818&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-06-20T14:23:38+03:00</dc:date>
        <title>smd:laboratoare:index</title>
        <link>http://ocw.cs.pub.ro/courses/smd/laboratoare/index?rev=1561029818&amp;do=diff</link>
        <description>*  Lab 1 - Android Basics: Activities
	*  Lab 2 - Android Basics: Intents
	*  Lab 3 - Android Basics: Services
	*  Lab 4 - Android Basics: Threading
	*  Lab 5 - HTTP and Web Services
	*  Lab 6 - Data Storage
	*  Lab 7 - Cryptography
	*  Lab 8 - Cryptography 2</description>
    </item>
</rdf:RDF>
