Linkt 是一个轻量级和简单的 Kotlin 库,用于 Android 上的 DeepLink 处理。
配置根目录build.gradle
:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
将Linkt
添加到项目build.gradle
:
dependencies {
implementation 'com.github.jeziellago:Linkt:TAG'
}
DeepLinkModule
并注册 deeplinks:class MyDeepLinkModule : DeepLinkModule { override fun load() { deepLinkOf( "linkt://sample", "linkt://sample/{userId}/{userName}" ) { context, bundle -> Intent(context, MainActivity::class.java) .apply { putExtras(bundle) } } } }
在多模块项目中,你应该有一个或多个 DeepLinkModule。
Application#onCreate
, 中DeepLinkLoader#setup
:class MyApplication : Application () {
override fun onCreate () {
super .onCreate()
DeepLinkLoader .setup( MyDeepLinkModule ())
}
}
DeepLinkActivity
,并调用DeepLinkLoader#loadFrom
:class DeepLinkActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // resolve deeplink DeepLinkLoader.loadFrom(this) } }
不要忘记配置AndroidManifest.xml
:
<activity android:name="org.linkt.DeepLinkActivity" android:theme="@android:style/Theme.NoDisplay"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="mycompany" /> </intent-filter> </activity>
linkt://sample/{userId}/{userName}
linkt://sample/9999/Jose
// get path parameters val userId = intent.extras.getString("userId") val userId = intent.extras.getString("userName")
linkt://sample
linkt://sample?subject=Linkt&name=Sample
// get query parameters val subject = intent.extras.getString("subject") val name = intent.extras.getString("name")
linkt://sample/{userId}/{userName}
linkt://sample/999/Jose?subject=Linkt&name=Sample
// get path parameters val userId = intent.extras.getString("userId") val userId = intent.extras.getString("userName") // get query parameters val subject = intent.extras.getString("subject") val name = intent.extras.getString("name")
问题内容: 我目前在一个网站上工作,该网站必须存在于内存可用性非常低的VM上(目前被告知要达到512mb)。不幸的是,至少在不久的将来,数据库和Web应用程序必须是同一台服务器。 现在,我已经在这里通读了一些问题,并尝试进行自己的研究,但是这里有很多选择。从本质上讲,什么是可以安装的轻巧的数据库服务器?SQL或NoSQL并不重要;它不会占用大量数据库资源,但我现在不想随我现在选择的内容而受到限制。
主要内容:使用普通函数创建 goroutine,使用匿名函数创建goroutine在编写 Socket 网络程序时,需要提前准备一个线程池为每一个 Socket 的收发包分配一个线程。开发人员需要在线程数量和 CPU 数量间建立一个对应关系,以保证每个任务能及时地被分配到 CPU 上进行处理,同时避免多个任务频繁地在线程间切换执行而损失效率。 虽然,线程池为逻辑编写者提供了线程分配的抽象机制。但是,如果面对随时随地可能发生的并发和线程处理需求,线程池就不是非常直观和方便了。能否
Jenkins Pipeline插件有一个称为“轻量级签出”的功能,其中主服务器仅从repo中提取Jenkinsfile,而不是整个repo。配置屏幕中有一个相应的复选框。我想在多分支管道中进行轻量级签出,但我在多分支配置屏幕中没有看到复选框。有什么想法如何实现这一点吗?我注意到一些关闭的问题表明此功能可用,但我无法找到任何有关如何实现它的细节。 相关资料: https://issues.jenk
问题内容: JPanel和JFrame有什么区别,以及与轻量级,重量级的关系? 问题答案: JPanel是允许将多个UI组件放在一起的容器。JFrame是使用Swing编写的窗口。 所有的Swing组件都是所谓的“轻型”组件,因为它们是用Java编写的。例如,如果您运行Swing应用程序并尝试使用UI分析工具(例如Windows中的WinSpy)对其进行分析,则只会看到一个元素:窗口(JFrame
问题内容: 题 我正在寻找Java内存对象缓存API。有什么建议吗?您过去使用过什么解决方案? 当前 现在,我只是在使用地图: 要求 我需要扩展缓存以包括以下基本功能: 最大尺寸 生存时间 但是,我不需要更复杂的功能,例如: 来自多个进程的访问(缓存服务器) 持久性(到磁盘) 意见建议 内存中缓存: Guava CacheBuilder-活动开发。请参阅此演示文稿。 LRUMap-通过API配置。
主要内容:一、简介,二、Java对象头中的Mark Word,三、偏向锁,四、轻量级锁,五、重量级锁,六、自旋锁,七、锁升级过程一、简介 在讲解这些锁概念之前,我们要明确的是这些锁不等同于Java API中的ReentratLock这种锁,这些锁是概念上的,是JDK1.6中为了对synchronized同步关键字进行优化而产生的的锁机制。这些锁的启动和关闭策略可以通过设定JVM启动参数来设置,当然在一般情况下,使用JVM默认的策略就可以了。 二、Java对象头中的Mark Word HotSpo