首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
我是coco
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
0
文章 0
沸点 0
赞
0
返回
|
搜索文章
最新
热门
在Android中使用Kotlin扩展
在 Java 中如果我们要为类添加新功能,就必须使用继承或者像装饰者这样的设计模式,但是在 Kotlin 中这些可以通过叫做扩展的方式来完成。平时我们开发 Android 的过程中,会逐渐总结出各种各样的工具类,如果使用 Kotlin 则可以通过扩展的方式,来简化或者替代这些工…
Android获取软键盘高度
在 Android 里我们是无法直接获取软键盘高度的,但是在某些场景下,我们又需要获取软键盘的高度。我们可以使用 ViewTreeObserver.OnGlobalLayoutListener来监听窗口大小的变化,当软键盘弹出时,窗口高度会变小,使用原始窗口高度减去当前窗口高度…
Android组件化开发实践(十):通过Gradle插件统一规范
相信大部分的开发团队,不管前端也好,后端也好,都会有自己内部的一套规范。它是团队协作开发的基石,如果团队成员各自搞自己的,最后集成时肯定或多或少会出现问题。所以问题就来了,在我们组件化开发的过程中,每个人各自开发自己的组件,单独运行时可能没问题,但是最后集成打包时总是失败。作为…
Android apk瘦身最佳实践(六):采用D8编译器
从 Android Studio 3.1 开始,默认的 dex 编译器变成了 D8 Dex Compiler,俗称 D8 编译器。官方的说法是,D8 与旧版相比:编译时间更短,编译出来的 dex 文件更小,运行效率更高。 如果你用的是 Android Studio 3.0 版本…
Kotlin内联函数
1. 什么是内联inline? 在 Java 里是没有内联这个概念的,所有的函数调用都是普通方法调用,如果了解 Java 虚拟机原理的,可以知道 Java 方法执行的内存模型是基于 Java 虚拟机栈的:每个方法被执行的时候都会创建一个栈帧(Stack Frame),用于存储局…
Dart基础入门
Flutter应用是采用Dart语言来编写,在学习Flutter之前,我们有必要先学习一下Dart语言。Dart是面向对象的,在语法上我感觉既像Java,又像JavaScript,下面我总结了Dart的一些特别之处。 在Dart中所有能够使用变量引用的都是对象,每个对象都是一个…
Android apk瘦身最佳实践(五):图片压缩
之前讲过的几种 apk 瘦身方法里,除了通过 proguard 进行混淆压缩比较常规外,其他都是些奇淫技巧,对 apk 进行压缩的大小有限,适合对 apk 大小进行极致优化的场景,并且如果对配置不熟悉,很容易出现各种错误。但其实瘦身最有效的办法之一,就是进行图片压缩。 1. 只…
Android apk瘦身最佳实践(四):采用AndResGuard进行资源混淆
前面讲了资源混淆的原理,现在我们来讲讲具体如何实践。实际项目中,我采用了微信的 AndResGuard 方案,github 地址为:https://github.com/shwenzhang/AndResGuard。 use7zip:是否使用 7zip 压缩,为了更好的兼容性,…
APP中如何显示带电子签名的PDF文件
之前碰到一个需求,需要在手机 APP 中显示 pdf 文件。经过调研发现,在电脑上的浏览器如 chrome、safari等,可以直接显示 pdf 文件。由此联想到,在 APP 中能否通过浏览器来加载显示 pdf 文件呢?最后经过测试发现: 我们需要显示的 pdf 文件基本上都是…
Android apk瘦身最佳实践(三):资源混淆原理
水电费
下一页
个人成就
文章被点赞
34
文章被阅读
49,237
掘力值
815
关注了
0
关注者
7
收藏集
0
关注标签
0
加入于
2018-11-14