android中的一些小tip(一)

最近把kotlin学习了一遍,参照谷歌的安卓官网教程进行自学安卓,在此记录学习过程中遇到的一些问题,以及一些好用的东西。
本人从事iOS开发已经四年多了,断断续续也学习了前端的一些框架,React、Flutter、Taro。将会把安卓开发过程中的一些知识点汇集在这里,共勉,共同进步。

安卓中的布局

布局在以 xml 后缀文件中,可以在 Design 的模式下,通过拖动 Palette 面板中的控件来快速创建一些界面。也可以切换到 code 模式下,手写布局文件进行布局。

安卓中的样式

安卓中的样式可以在 Design 的模式下,使用右侧面板进行 Attributes 和一些基础设置,可以将设置 padding 、margin 、字体大小 等,可以通过抽取


抽取样式

可以直接导出样式


导出样式

管理字符串
统一管理字符串

安卓中的图片兼容

展开res文件夹,然后展开drawable,默认情况下这些文件为矢量可绘制对象。矢量可绘制对象相对于位图图像格式(如PNG)的好处是,矢量可绘制对象可以缩放而不损失质量。同样,矢量可绘制对象通常是一个比位图格式的相同图像小的文件。

关于矢量可绘制对象的重要注意事项是API 21及更高版本支持它们。但是,应用程序的最低SDK设置为API19。如果您在API 19设备或仿真器上尝试过该应用程序,则会发现该应用程序似乎可以正常构建和运行。那么这是如何工作的呢?

一、打开 build.gradle(Module:app)。将此行添加到以下defaultConfig部分:

vectorDrawables.useSupportLibrary = true

二、点击右上角的 Sync Now
三、打开 .xml 文件,在根控件中输入

xmlns:app="http://schemas.android.com/apk/res-auto"

四、在使用<ImageVIew>的部分将 android:src 修改为
app:srcCompat="@drawable/empty_dice"

生成并运行应用程序。不会在屏幕上看到任何不同,但是现在应用程序无论在何处运行都无需使用生成的PNG文件来生成图像,这意味着应用程序文件更小。


这一段摘自官方 Kotlin

使用Timber打印一些信息

要使用Timber,需要引入依赖,在dependencies中中添加以下依赖
implementation 'com.jakewharton.timber:timber:4.7.1'
具体版本号可依据github上最新的版本修改以下。
使用如下:

Timber.i("onDestroy Called")
等效于
Log.i("你的activity","onDestroy Called")

使用Lifecycle进行生命周期管理

一些场景需要用到如计数器等需要生命周期管理的对象时,在配套的 onStart 和 onStop 都要写一些胶水代码,如果需要管理很多类似的代码时,则非常容易出错。此时Lifecycle将非常便捷

如下:

class DessertTimer(lifecycle: Lifecycle) : LifecycleObserver {

    // The number of seconds counted since the timer started
    var secondsCount = 0

    /**
     * [Handler] is a class meant to process a queue of messages (known as [android.os.Message]s)
     * or actions (known as [Runnable]s)
     */
    private var handler = Handler()
    private lateinit var runnable: Runnable

    init {

        lifecycle.addObserver(this)
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_START)
    fun startTimer() {
        // Create the runnable action, which prints out a log and increments the seconds counter
        runnable = Runnable {
            secondsCount++
            Timber.i("Timer is at : $secondsCount")
            // postDelayed re-adds the action to the queue of actions the Handler is cycling
            // through. The delayMillis param tells the handler to run the runnable in
            // 1 second (1000ms)
            handler.postDelayed(runnable, 1000)
        }

        // This is what initially starts the timer
        handler.postDelayed(runnable, 1000)

        // Note that the Thread the handler runs on is determined by a class called Looper.
        // In this case, no looper is defined, and it defaults to the main or UI thread.
    }
    @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
    fun stopTimer() {
        // Removes all pending posts of runnable from the handler's queue, effectively stopping the
        // timer
        handler.removeCallbacks(runnable)
    }
}
比较好用的一个快捷键

多行相同的内容同时编辑时如下:
AS: control + G
VS: command + shift + L

多行编辑

VS: option + shift + ↓ 为快速复制快捷键
快速复制

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269