- [Data Structures] (https://gist.github.com/lawloretienne/6f7d7d92f72986f5ebd60f226d9044ee#data-structures)
- [Linked Lists] (https://gist.github.com/lawloretienne/6f7d7d92f72986f5ebd60f226d9044ee#linked-lists)
- [Trees] (https://gist.github.com/lawloretienne/6f7d7d92f72986f5ebd60f226d9044ee#trees)
- [Binary Trees] (https://gist.github.com/lawloretienne/6f7d7d92f72986f5ebd60f226d9044ee#binary-trees)
- [Binary Search Tree] (https://gist.github.com/lawloretienne/6f7d7d92f72986f5ebd60f226d9044ee#binary-search-tree)
- [Red-Black Tree] (https://gist.github.com/lawloretienne/6f7d7d92f72986f5ebd60f226d9044ee#red-black-tree)
- [AVL Tree] (https://gist.github.com/lawloretienne/6f7d7d92f72986f5ebd60f226d9044ee#avl-tree)
- [Tries] (https://gist.github.com/lawloretienne/6f7d7d92f72986f5ebd60f226d9044ee#tries)
package com.namtarr.upsert | |
import androidx.room.Entity | |
import androidx.room.PrimaryKey | |
@Entity | |
class User( | |
@PrimaryKey | |
val id: Long, | |
val name: String |
package com.kaspersky.security_pulse_android.buisness.interactor | |
import com.kaspersky.security_pulse_android.buisness.repository.ILanguageRepository | |
import com.kaspersky.security_pulse_android.buisness.repository.ILoginRepository | |
import kotlinx.coroutines.experimental.async | |
import java.util.* | |
interface ILoginRepository { | |
// Если функции репорзитория всегда планируется запускать из другого треда, | |
// то разумно позаботиться о том, чтобы они сами для себя решали на каком |
/** | |
* Eases the Fragment.newInstance ceremony by marking the fragment's args with this delegate | |
* Just write the property in newInstance and read it like any other property after the fragment has been created | |
* | |
* Inspired by Jake Wharton, he mentioned it during his IO/17 talk about Kotlin | |
*/ | |
class FragmentArg<T : Any?> : kotlin.properties.ReadWriteProperty<Fragment, T?> { | |
var value: T? = null |
<android.support.v4.widget.SwipeRefreshLayout | |
android:id="@+id/refreshLayout" | |
android:layout_width="match_parent" | |
android:layout_height="match_parent"> | |
<android.support.v4.widget.NestedScrollView | |
android:layout_width="match_parent" | |
android:layout_height="match_parent"> | |
<LinearLayout |
class HomeActivity : AppCompatActivity() { | |
override fun onCreate(savedInstanceState: Bundle?) { | |
super.onCreate(savedInstanceState) | |
setContentView(R.layout.activity_home) | |
setSupportActionBar(toolbar) | |
fab.setOnClickListener { | |
it.snack("Snack message") { | |
action("Action") { toast("Action clicked") } |
import com.android.build.gradle.AppPlugin | |
task consolidateJunitXml { | |
description 'Copies JUnit XML reports into a single directory so SonarQube can import them all' | |
doLast { | |
def dest = file("${buildDir}/allJunit") | |
delete dest | |
copy { | |
from "${buildDir}/test-results/debug" | |
into dest |
This Blog is all about memory management in Android. It provides information about how you can analyze & reduce memory usage while developing an Android app.
Memory management is a complex field of computer science and there are many techniques being developed to make it more efficient. This guide is designed to introduce you to some of the basic memory management issues that programmers face.
Android is a Linux based operating system. It uses native open source C libraries which power Linux machines. All the basic operating system operations like I/O, memory management and so on are handled by the Linux kernel. Like Java and .NET, Android uses its own run time and virtual machine to manage application memory. Unlike either of these frameworks, the Android run time also manages the lifetime processes. Each Android application runs in a separate process within its own Dalvik instance, relinquishing all responsibility for memo