Android中文API
安卓中文官网(android中文官网)-Android Studio Android sdk Android sdk下载 Android api
当前位置: 主页 > Android开发文档 >

为什么每个Android开发人员都应该使用安科

时间:2017-08-03 15:50来源:未知 作者:卓一哥 点击:
Anko是由Kotlin编写并由JetBrains维护的Android图书馆。 其目的是通过Kotlin的功能加快Android开发速度,从而使其更加方便。 这就是它的名字。 (An)droid(Ko)tlin。 让我们看看 安科 对我们有

Anko是由Kotlin编写并由JetBrains维护的Android图书馆。其目的是通过Kotlin的功能加快Android开发速度,从而使其更加方便。这就是它的名字。(An)droid(Ko)tlin。让我们看看安科对我们有什么好的工具

安科图书馆有四个主要模块:

  • 下议院
  • 布局
  • SQLite的
  • 协同程序

公共模块具有各种各样的帮助功能和功能。使用库的布局部分,您可以使用称为Anko DSL的功能从Kotlin代码创建UI。库的SQLite部分使SQLite数据库的交互更简单。最后但并非最不重要的是,安科为Kotlin 1.1最大的功能之一提供了一些帮助功能:Kotlin协同程序。

开发Android平台的应用程序从未如此简单。

在这篇文章中,我将专注于安科公司模块。

安科共同体

最常见的

我们从一些基本的简化开始吧!在Android项目中,View.setOnClickListener方法被用于任何地方,所以如果我们可以使其更简洁,那将是很好的。
最长的形式我们可以在Kotlin中定义一个点击处理程序:


button.setOnClickListener(object : View.OnClickListener{
 override fun onClick(v: View) {
 }
})

但安科有助于尽量减少我们必须做的努力:


button.onClick { }

有意的

使用意图是您将作为Android开发人员学习的第一件事情之一,但API可能更方便。


val intent = Intent(this, MainActivity::class.java)
intent.putExtra("id", 5)
intent.putExtra("name", "John")
startActivity(intent)

让我们看看如何更简单:


startActivity<mainactivity>("id" to 5, "name" to "John")

一个LOC而不是五个。不错。
Anko还有一些帮助函数用于常用的意图:


browse("https://makery.co")
share("share", "subject")
email("hello@makery.co", "Great app idea", "potato")

开始与陌生人的谈话更容易

安科还使Android对话框API更易于开发人员使用。不需要构建器模式。


val builder = AlertDialog.Builder(this)
builder.setTitle("Java")
builder.setMessage("Java is… old!")
builder.setPositiveButton("OK") { dialog, which -> toast("Yay!") }
builder.setNegativeButton("Cancel") { dialog, which -> toast("What?") }
builder.show()


alert(Appcompat, "Kotlin", "Kotlin is so fresh!") {
 customView { editText() }
 positiveButton("OK") { toast("Yay!") }
 negativeButton("Cancel") { toast("What?") }
}.show()

尺寸问题

代码大小也很重要,而且在编程时也可以进行dpi数学运算。
复杂的旧方式:


val dpAsPx = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 10f, getResources().getDisplayMetrics())

死的简单新方式:


val dpAsPx = dip(10f)

您也可以获取文字大小


sp(15f)

API级别23(圣骑士)

碎片化是每个Android开发人员面临的问题。我们不想让任何具有旧版系统版本的人留下,但是我们也希望使用最新Android版本的酷炫新功能。

我们可以做什么?分支我们的代码。通常看起来像这样:


if (Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP){ }
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){ }

我们来看看安科对我们的看法:


doIfSdk(Build.VERSION_CODES.LOLLIPOP){ }
doFromSdk(Build.VERSION_CODES.LOLLIPOP){ }

我刚刚在小吃店吃点零食。

Android Snackbar API也可以更好。你有没有忘记在Snackbar.make()函数后调用.show(),然后调试它半个小时为什么它不显示?没有?也许只是我


Snackbar.make(findViewById(android.R.id.content), "This is a snack!", Snackbar.LENGTH_LONG)
.show()

你不需要调用show()!


longSnackbar(findViewById(android.R.id.content), "This is a snack!")

如果你是烤面包的主角,安科也有一些东西给你:


toast("Message")

穿针

处理多个线程并不容易,但它在移动开发中是一个很常见的模式:大多数时候我们想从UI线程中卸载工作。与安科做的方法是相当简单和简洁。


doAsync {
 //IO task or other computation with high cpu load
 uiThread {
   toast("async computation finished")
 }
}

将Anko添加到您的项目中

如果你喜欢上面的功能,你还在等什么?现在是添加Anko到您的项目的时候了!


ankoVersion = "0.10.1"
dependencies {
 compile "org.jetbrains.anko:anko-appcompat-v7-listeners:$ankoVersion"
 compile "org.jetbrains.anko:anko-design-listeners:$ankoVersion"
 compile "org.jetbrains.anko:anko-design:$ankoVersion"
 compile "org.jetbrains.anko:anko-sdk15-listeners:$ankoVersion"
 compile "org.jetbrains.anko:anko-sdk15:$ankoVersion"
}

+1再见findViewById()

你听说过Kotlin Android Extensions Gradle插件吗?您可以通过在Gradle脚本中引入一个额外的行来摆脱所有讨厌的findViewById()调用和投射视图:


apply plugin: 'kotlin-android-extensions'

现在您可以使用其id引用XML文件的视图。


// activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical">
 
 <Button android:id="@+id/button"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="OK"/>

</LinearLayout>


// MainActivity.kt

import kotlinx.android.synthetic.main.activity_main.*
...
override fun onCreate(savedInstanceState: Bundle?) {
 super.onCreate(savedInstanceState)
 setContentView(R.layout.activity_main)
 button.onClick {  }
}
 
(责任编辑:卓一哥)
织梦二维码生成器
顶一下
(2)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容