fragment 崩溃 连累activity吗
没有足够的数据
(゚∀゚ )
暂时没有任何数据
MayIHelpYou 提出了问题 · 2月17日
fragment 崩溃 连累activity吗
fragment 崩溃 连累activity吗
关注 1 回答 0
MayIHelpYou 收藏了文章 · 2月13日
简评: 自己过去在 Android 开发中发现的好工具,在这里分享给大家。: )
每一个 Android App 的开发中都会用到很多的库,这个工具能够让你看到不同库的大小和,帮助你回避 65K 方法数限制。
Stetho 是 Facebook 构建的一个 Android debug 工具,能够和 Chrome 浏览器绑定,使得你可以通过 Chrome 来调试 Android 应用,比如查看网络请求情况和 SQLite 数据库。
LeakCanary 是一个知名的用于分析 Android 内存泄漏的库。
这个工具能够很清楚的展示出 Android APK 包中的方法数。
帮助你自定义自己的 Material Design 图标。
Buck 是一款 Facebook 发布的高性能构建工具。不仅能用于 Android 还支持 Go、iOS、Java、Groovy 等多种语言和平台。
ProGuard(或者 DexGuard)能帮助混淆你的代码,并减小应用包的体积。
Android Asset Studio 是一个一站式的工具,能够生成应用图标、Action bar 图标、通知图标,生成 .9 图。
Device Art Generator 能方便的将应用截图嵌入到真是设备的效果图中。这样,当用户在你的网站上或其他宣传材料中看到你的应用截图时,就能更加直观地了解应用的内容环境。
欢迎关注微信号「极光开发者」
查看原文Stetho 是 Facebook 构建的一个 Android debug 工具,能够和 Chrome 浏览器绑定,使得你可以通过 Chrome 来调试 Android 应用,比如查看网络请求情况和 SQLite 数据库。
MayIHelpYou 收藏了文章 · 2月13日
简评: 这里介绍的仅仅是 Anko 中很小的一部分,Kotlin + Anko 真的让 Android 开发简化了不少,用了 Anko 基本就可以告别那些什么 Android 不得不知的代码收集贴了。
Anko 是 JetBrains 针对 Kotlin 推出的 Android 开发库,其目的是通过 Kotlin 让 Android 开发更加简单。
Anko 主要有四个模块:
在这篇文章中,我们先主要介绍其 Commons 模块中的一些内容:
首先,View.setOnClickListener 方法可以说是广大 Android 开发者写得最多的方法之一了,如果你是用 Kotlin,那么代码看起来应该是类似这样的:
button.setOnClickListener(object : View.OnClickListener{
override fun onClick(v: View) {
}
})
通过使用 Anko 可以把代码缩减为:
button.onClick { }
Intent
当我们希望跳转到新的 Activity 时,代码类似这样:
val intent = Intent(this, MainActivity::class.java)
intent.putExtra("id", 5)
intent.putExtra("name", "John")
startActivity(intent)
而通过 Anko:
startActivity<mainactivity>("id" to 5, "name" to "John")
Anko 还封装了一些常用的功能,让我们无需定义 Intent:
browse("https://makery.co")
share("share", "subject")
email("hello@makery.co", "Great app idea", "potato")
尺寸的单位问题
通过 Anko,Android 中的尺寸单位换算也变得无比简单:
val dpAsPx = dip(10f)
sp(15f)
API level 的问题
碎片化是 Android 开发者必须要面对的问题,我们不希望不管那些还在用旧版本的用户,但也希望能使用新 Android 版本中酷炫的功能。最常见的做法是像这样:
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP){ }
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){ }
现在让我们看看 Anko 是怎么做的:
doIfSdk(Build.VERSION_CODES.LOLLIPOP){ }
doFromSdk(Build.VERSION_CODES.LOLLIPOP){ }
真是简单又易懂。
处理线程
处理多线程一直都不太容易,但在 Android 开发中我们经常需要面对。在 Anko 中的做法会相当的简洁:
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"
}
不夸张的说,Anko 可以算是我学习 Kotlin Android 开发的一个重要原因了。
原文链接:Why every Android developer should use Anko - Kotlin Development
推荐阅读:跨浏览器问题的五种解决方案
简评: 这里介绍的仅仅是 Anko 中很小的一部分,Kotlin + Anko 真的让 Android 开发简化了不少,用了 Anko 基本就可以告别那些什么 Android 不得不知的代码收集贴了。
MayIHelpYou 赞了文章 · 2月13日
简评: 应用的大小也是用户体验的一个重要方面,而减少 Android 应用安装包大小其实一点也不复杂。
对于移动应用来说,应用安装包的大小当然是越小越好。特别是对于一些欠发达地区,你不希望用户因为手机「存储空间不足」而卸载你的应用。
本文就介绍了几个小技巧来有效减少 apk 的大小:
首先,我们先用 Android Studio 提供的 APK Analyser 工具来分析下我们的 apk 文件:
可以看到占空间最多的主要是三个部分:classes.dex, res 和 resources.arsc。
classes.dex 文件的大小完全取决于程序中方法数的多少。在上面展示的例子中,包含了 4392 个类和 29897 个方法。这个结果是默认没有使用 proguard 的。我们有两个默认的 proguard 文件可以使用:
从名字上就可以看出,proguard-android-optimize.txt 是更加激进的 proguard 配置,包括和 proguard-android.txt 相同的 ProGuard 规则,但还包括其他在字节码一级(方法内和方法间)执行分析的优化,以进一步减小 APK 大小和帮助提高其运行速度。
可以像这样来使用:
release {
//Enable the proguard
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), "proguard-rules.pro"
//Other parameters
debuggable false
jniDebuggable false
renderscriptDebuggable false
signingConfig playStoreConfig //Add your own signing config
pseudoLocalesEnabled false
zipAlignEnabled true
}
通过设置 minifyEnabled 属性为 true,会告诉 proguard 删除所有未使用的方法和指令,进一步的减少 .dex 文件的大小。
方法数从 29897 减少到了 15168,大小从 3.1MB 减少到了 1.98 MB。
对于 res 文件夹,通常占空间最大的就是图片了。如果你的 Android Studio 为 2.3,并且项目的 minimum version 为 18 或以上,应该使用 webp 而不是 png 图片。webp 图片有更小的体积,图片质量还没有什么损失。
我们可以选中 drawable 和 mipmap 文件夹,右键后选择 convert to webp,将图片转为 webp 格式。
转换的结果:
我们还可以在 build.gradle 中设置 shrinkResources 属性为 true,这会在打包时删除未使用的资源:
release{
//...
//...
shrinkResources true
//...
}
另外如果你的应用不需要支持国际化,那么可以设置 resConfigs 为 "zh","en",即只支持中英文:
defaultConfig {
//...
//...
//...
resConfigs "zh","en"
}
这么做是因为对于官方的 support library,默认是支持国际化的,也就是包含了很多不同语言的资源文件,我们就可以通过这样设置来移除用不到的语言资源文件。
通过上面的设置,这个 App 的安装包大小从 3.19MB 减少到了 1.89MB。当然还有很多其他的减少 apk 大小的技巧,但这里介绍的技巧是完全可以作为你项目的默认设置。
原文链接:How you can decrease application size by 60% (In only 5 minutes)?
推荐阅读:Android Package Name vs. Application ID
欢迎关注微信号「极光开发者」
查看原文简评: 应用的大小也是用户体验的一个重要方面,而减少 Android 应用安装包大小其实一点也不复杂。 对于移动应用来说,应用安装包的大小当然是越小越好。特别是对于一些欠发达地区,你不希望用户因为手机「存储空间不足」而卸载你的应用。 本文就介绍了几个小技巧来...
赞 15 收藏 9 评论 0
MayIHelpYou 赞了文章 · 2月13日
简评: 这里介绍的仅仅是 Anko 中很小的一部分,Kotlin + Anko 真的让 Android 开发简化了不少,用了 Anko 基本就可以告别那些什么 Android 不得不知的代码收集贴了。
Anko 是 JetBrains 针对 Kotlin 推出的 Android 开发库,其目的是通过 Kotlin 让 Android 开发更加简单。
Anko 主要有四个模块:
在这篇文章中,我们先主要介绍其 Commons 模块中的一些内容:
首先,View.setOnClickListener 方法可以说是广大 Android 开发者写得最多的方法之一了,如果你是用 Kotlin,那么代码看起来应该是类似这样的:
button.setOnClickListener(object : View.OnClickListener{
override fun onClick(v: View) {
}
})
通过使用 Anko 可以把代码缩减为:
button.onClick { }
Intent
当我们希望跳转到新的 Activity 时,代码类似这样:
val intent = Intent(this, MainActivity::class.java)
intent.putExtra("id", 5)
intent.putExtra("name", "John")
startActivity(intent)
而通过 Anko:
startActivity<mainactivity>("id" to 5, "name" to "John")
Anko 还封装了一些常用的功能,让我们无需定义 Intent:
browse("https://makery.co")
share("share", "subject")
email("hello@makery.co", "Great app idea", "potato")
尺寸的单位问题
通过 Anko,Android 中的尺寸单位换算也变得无比简单:
val dpAsPx = dip(10f)
sp(15f)
API level 的问题
碎片化是 Android 开发者必须要面对的问题,我们不希望不管那些还在用旧版本的用户,但也希望能使用新 Android 版本中酷炫的功能。最常见的做法是像这样:
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP){ }
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){ }
现在让我们看看 Anko 是怎么做的:
doIfSdk(Build.VERSION_CODES.LOLLIPOP){ }
doFromSdk(Build.VERSION_CODES.LOLLIPOP){ }
真是简单又易懂。
处理线程
处理多线程一直都不太容易,但在 Android 开发中我们经常需要面对。在 Anko 中的做法会相当的简洁:
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"
}
不夸张的说,Anko 可以算是我学习 Kotlin Android 开发的一个重要原因了。
原文链接:Why every Android developer should use Anko - Kotlin Development
推荐阅读:跨浏览器问题的五种解决方案
简评: 这里介绍的仅仅是 Anko 中很小的一部分,Kotlin + Anko 真的让 Android 开发简化了不少,用了 Anko 基本就可以告别那些什么 Android 不得不知的代码收集贴了。
赞 1 收藏 1 评论 0
MayIHelpYou 赞了问题 · 2月12日
我在做一个关于 webrtc 的项目,视频采用的是 h264 格式。 我打算用 webview 来加载视频页面, 我查了查 webview 内核用的是 Chromium,但是默认是支持 h264 这种格式
我的想法是自己编译一个 Chromium webview,修改一下参数 让其支持 h264, 参考下面文章 https://www.chromium.org/deve...
目前遇到的困惑是,文章里面说安装需要 root 卸载手机的 webview,这对于用户来说 显然不可接受,可不可以安装一个和系统不冲突的,并且让安卓 webview 指定渲染这个自己编译的 webview ? 我 google 了很长时间没找到思路, 想请有这方面经验的朋友 给点方法和思路 谢谢!
我在做一个关于 webrtc 的项目,视频采用的是 h264 格式。 我打算用 webview 来加载视频页面, 我查了查 webview 内核用的是 Chromium,但是默认是支持 h264 这种格式
关注 3 回答 0
MayIHelpYou 提出了问题 · 2月6日
平时调试一个app,是机器自动删除旧的重新安装新的app。
但我自己手动删除了调试时机器安装在手机上app, 然后我又点debug,机器会安装app时自动生成多一个快捷方式入口,
就这样,每当手动删除后,都会多生成一个快捷入口,为什么呢?
平时调试一个app,是机器自动删除旧的重新安装新的app。但我自己手动删除了调试时机器安装在手机上app, 然后我又点debug,机器会安装app时自动生成多一个快捷方式入口, 就这样,每当手动删除后,都会多生成一个快捷入口,为什么呢?
关注 1 回答 0
MayIHelpYou 提出了问题 · 2月6日
关于activity按下home键后 再返回app的生命周期
我在网上查到的资料都是这样
onPause->onStop->onRestart->onStart->onResume
但是,我自己测试出来是这样, 为什么?
`I/System.out: onDestory
I/System.out: onCreate
I/System.out: onDestory
I/System.out: onCreate
I/System.out: onDestory
I/System.out: onCreate`
按下home, 再返回, 再按home, 再返回, 连续几次都是这样。
关于activity按下home键后 再返回app的生命周期我在网上查到的资料都是这样onPause->onStop->onRestart->onStart->onResume但是,我自己测试出来是这样, 为什么?`I/System.out: onDestoryI/System.out: onCreateI/System.out: onDestoryI/System.out: ...
关注 1 回答 0
MayIHelpYou 赞了回答 · 1月31日
stackoverflow: How to Change the Color of Overscroll Edge and Overscroll Glow
关注 2 回答 1
MayIHelpYou 提出了问题 · 1月22日
比如,
NestedScrollView 套了一篇很长的文章, 用手从上往下拨, 直到下面尽头时,会出现点蓝色的余光, 这个余光怎么改变它的颜色呢 ?
谢谢。
NestedScrollView 套了一篇很长的文章, 用手从上往下拨, 直到下面尽头时,会出现点蓝色的余光, 这个余光怎么改变它的颜色呢 ?
关注 2 回答 1
查看全部 个人动态 →
(゚∀゚ )
暂时没有
(゚∀゚ )
暂时没有
注册于 1月4日
个人主页被 433 人浏览
推荐关注