Android
文章平均质量分 74
Hanks-zyh
Android 开发
展开
-
学习 Compose 系列(一)环境配置、概念理解、初体验
Jetpack Compose 是用于构建原生界面的新款 Android 工具包。它可简化并加快 Android 上的界面开发。使用更少的代码、强大的工具和直观的 Kotlin API,快速让应用生动而精彩。Compose 作为一条新的构建界面的工具,不同于原来解析 xml 生成,应用开发方式也与原来不同,需要重新理解其原理。Compose 放在 Jetpack 中,和 ViewModel LiveData 结合,目标是开发更高效,应用更健壮。官网地址之前通过 kotlin + xml 编写UI界.原创 2021-06-11 22:12:47 · 420 阅读 · 1 评论 -
Kotlin在Android工程中的应用
Kotlin官网:(http://kotlinlang.org/)英文原文:http://code.tutsplus.com/tutorials/how-to-use-kotlin-in-your-android-projects--cms-24052转载自:http://www.jianshu.com/p/a7fadc79e0fb简介Kotlin是由Jet转载 2015-07-06 13:53:07 · 989 阅读 · 0 评论 -
Gradle in Android Studio (3) - 项目中的Gradle
Gradle in Android StudioGradle (谷瑞豆) 官网, 点击上面图片看Google官方视频 Introducing Gradle (Ep 2, Android Studio) in Youtube 来自Gradle的hello worldAndroid Studio中的Gradle当创建一个项目后,Android studio 会自动创建以下的目录 一般情况下,我原创 2015-09-14 21:51:03 · 1326 阅读 · 0 评论 -
Gradle in Android Studio (2) - 配置Gradle
配置Gradle建立基本配置Android Studio创建的project包含一个顶级构建文件(build.gradle), 并且每个module都包含一个构建文件(build.gradle)。他们是纯文本文件,使用Groovy的语法来配置构建,使用Android的Gradle插件生成。在大多数情况下,你只需要修改module下的build.gradle。例如,在BuildSystemExampl翻译 2015-09-14 21:41:00 · 1375 阅读 · 0 评论 -
Anko for Android
Anko for Android Anko 是一个使开发Android应用更简单更快捷的库,Anko使你的代码简洁易懂, 使开发者不用再在意Android SDK对Java版本的限制(目前还不支持Java8 =。= ).Anko版本的 hello world :verticalLayout { val name = editText() button("Say Hello")原创 2015-10-21 18:39:23 · 2753 阅读 · 0 评论 -
上传自己的库到jcenter
# 注册 [https://bintray.com/](https://bintray.com/)注册一个账号。获取API Key[https://bintray.com/profile/edit](https://bintray.com/profile/edit) # 创建与配置项目1. 修改项目目录下的 `build.gradle`,添加依赖```// Top-level build fi原创 2015-10-31 20:24:14 · 999 阅读 · 0 评论 -
校验数字签名防止 apk 被二次打包 - Java层校验(大众点评为例)
原文链接: http://kiya-z.github.io/2015/11/12/check-signature-for-avoiding-fake-app-java-level-check/测试环境Ubuntu 14.04Lenovo Android 5.1Lenovo Android 4.2.2Android Studio普及签名包名知识包名 (Pac转载 2015-11-17 11:51:34 · 2870 阅读 · 0 评论 -
如何运行 .smali 程序
原文: http://kiya-z.github.io/2015/11/16/how-to-run-file-ended-with-smali/如何运行 .smali 程序发表于 2015-11-16 | 分类于 Android | 暂无评论 | 3 Hits准备 smali 程序从 《Andro转载 2015-11-17 11:53:37 · 1602 阅读 · 0 评论 -
解析 dex 文件结构 - DexHeader
原文: http://kiya-z.github.io/2015/11/17/parse-dex-file-part-dex-header/解析 dex 文件结构 - DexHeader发表于 2015-11-17 | 分类于 Android | 暂无评论 | 6 Hits简介dex 文件是 dalvik 虚拟机的可转载 2015-11-18 11:02:17 · 2709 阅读 · 0 评论 -
Gradle in Android Studio (1) - 构建系统概述
构建系统概述 Android构建系统是用于构建,测试,运行和打包app的工具包。构建系统可以集成到Android Studio菜单中,也可以单独使用命令行运行。构建系统的特点: - 自定义,配置和扩展构建过程; - 为同一个project或者moudles,创建多个不同的APP; - 重用代码和资源。原文地址构建过程构建.apk文件的过程涉及到许多工具,并且产生一些中间文件。翻译 2015-09-14 21:32:54 · 1178 阅读 · 1 评论 -
FTI们在使用的开源库
FTI们在使用的开源库 转载请注明出处 http://blog.csdn.net/hpu_zyh/article/details/487697031. InstagramACRA android-async-http DiskLruCache Foursquared jackson-annotations jackson-core jackson-databind rebound原创 2015-09-27 22:49:20 · 2719 阅读 · 0 评论 -
使用Kotlin开发Android应用(I):简介
转载自:http://www.jianshu.com/p/b6a2cda2f806英文原文:http://antonioleiva.com/kotlin-for-android-introduction/Kotlin是一门基于JVM的编程语言,它正成长为Android开发中用于替代Java语言的继承者。Java是世界上使用最多的编程语言之一,当其他编程语言为更加便于开发者使用而不断转载 2015-07-06 13:55:51 · 1025 阅读 · 0 评论 -
使用Kotlin开发Android应用(II):创建新工程
转载自:http://www.jianshu.com/p/03bba63474f7英文原文“:http://antonioleiva.com/kotlin-android-create-project/在基本了解什么是Kotlin以及Kotlin可以做什么之后,接下来就到了配置Android Studio并使用Kotlin开发Android apps的时候了。首次配置Android转载 2015-07-06 13:58:43 · 1029 阅读 · 0 评论 -
前方高能--Retrofit
Retrofit A type-safe REST client for Android and JavaAndroid中非常有名的网络框架 官网 :http://square.github.io/retrofit/ 参考项目: http://square.github.io/okhttp/ Android 示例项目: https://github.com/goodev/Retrofi原创 2015-05-27 00:26:21 · 1934 阅读 · 0 评论 -
MaterialCheckBox
自定义View,仿MaterialDesign 的CheckBox原创 2015-07-01 00:55:51 · 2516 阅读 · 0 评论 -
来自Gradle的hello world
来自Gradle的hello world Android Studio使用Gradle 构建项目为什么要用Gradle?Gradle是比较先进的构建系统,也是一个很好的构建工具,允许通过插件自定义构建逻辑为什么Android Studio选择Gradle?使用领域专用语言(Domain Specific Language)来描述和处理构建逻辑。(以下简称DSL)基于Groovy。DSL可以原创 2015-08-11 23:41:53 · 1976 阅读 · 0 评论 -
使用Volley传输网络数据(官网教程)
介绍:Volley是一个HTTP库,使Android应用程序变得更加容易,最重要的是,网络速度更快。并且是开源的。Volley有以下特点:*自动网络请求调度*多个并发的网络连接*透明的磁盘和内存响应缓存与标准HTTP缓存一致性。*支持请求优先级。*取消请求API。你可以取消一个请求,或者你可以设定取消请求的块或范围。*易于定制,例如,重试和补偿。*订制你翻译 2015-03-26 00:18:04 · 2386 阅读 · 1 评论 -
Android中的Interpolator
首先介绍一个网站 https://www.desmos.com,这是一个通过函数来生成函数图像的网站,使用起来很灵活,可以 同时添加多个函数图像,分别指定他们的定义域。感谢道哥分享!系统提供的InterpolatorLinearInterpolator 线性插值器 public class LinearInterpolator extends BaseInterpolator implement原创 2015-07-22 00:38:55 · 3643 阅读 · 3 评论 -
一步一步实现500px引导动画 -- 酷酷哒
一步一步实现500px引导动画 – 酷酷哒 转载请注明出处 :下了500px应用, 瞬间被它的引导动画吸引住了,下面一步一步来实现引导动画最终效果图:创建viewpager可以左右随手指滑动的只有底部文字部分,所以ViewPager中存放的布局是底部文字部分 activity_main.xml<RelativeLayout xmlns:android="http://schemas.andr原创 2015-08-18 14:30:23 · 4571 阅读 · 6 评论 -
用Android Studio进行NDK开发(简化流程)
开发环境 Android Studio 1.3 RC3 android-ndk-r10e 转载请注明出处 : http://blog.csdn.net/hpu_zyh/article/details/48184581 博客主页 | 简书 | 知乎 | 微博 | github1. 准备NDK环境我这里下载的是android-ndk-r10e 进入An原创 2015-09-02 22:32:42 · 1776 阅读 · 0 评论 -
adb 无线调试
adb 无线调试 通过wifi链接adb, 也是插件 AndroidWiFiADB 的原理 前提: 电脑和手机在同一局域网下adb connect 命令adb connect <host>[:<port>]通过USB线连接电脑查看 adb 连接的设备列表$ adb devices -lList of devices attached005deabe1919a90b原创 2015-11-18 17:26:01 · 840 阅读 · 0 评论 -
Framework分析-Application的onCreate
ActivityThread并不是一个Thread,而是一个单纯的Java类,查看一下 ActivityThread 的源码final class ActivityThread,并没有继承Thread或者实现Runnable接口,ActivityThread 其中包含 main 方法,程序的入口地方,怎么看出来的呢? 我们开发过程中总会出现程序异常信息,细心看一下log,查看最下面的几行,最终问题出原创 2016-01-25 01:02:13 · 787 阅读 · 0 评论 -
React-Native 知乎日报首页
主要练习从服务器获取数据,然后展示到界面,最外层用ScrollView包裹起来顶部是一个ViewPager,api使用的知乎日报的api,在这里只使用了一个主题日报列表查看的api,获取到json数据之后,显示到ListView中.最终效果如下:获取网络数据根据前面的文章React-Native 网络请求使用fetch方法来获取_getData:function(){ var datas = [原创 2015-12-30 18:21:30 · 1596 阅读 · 0 评论 -
TextView 设置行高并垂直居中
需求: TextView 多行文本可以设置行高(如20dp),每行文本垂直居中。效果如下:实现思路:通过设置 TextView 的 lineSpacingExtra 和 lineSpacingMultiplier 来实现。lineSpacingMultiplier 的值为行间距的倍数,默认值为 1.0f。lineSpacingExtra 值为具体的行间距值,如20dp。垂直居中靠设置 padd原创 2016-07-22 22:05:55 · 11360 阅读 · 0 评论 -
多行 EditText 的光标高度问题
问题改变文本的行间距需要给 EditText 设置 lineSpacingExtra 和 lineSpacingMultiplier 这个时候的 EditText的光标高度就会变得很难看.解决办法自定义 cursorDrawable 然后设置 padding 值原理EditText 在更新光标的视图的时候检查了光标 drawable 的 padding. 计算光标高度会算上相应的值.相关源码:Edi原创 2016-07-25 00:24:57 · 2989 阅读 · 1 评论 -
SwipeRefreshLayout 源码
简介官方文档SwipeRefreshLayout 是一个下拉刷新控件,几乎可以包裹一个任何可以滚动的内容(ListView GridView ScrollView RecyclerView),可以自动识别垂直滚动手势。使用起来非常方便。 1.将需要下拉刷新的空间包裹起来<android.support.v4.widget.SwipeRefreshLayout android:lay原创 2016-06-18 19:41:25 · 5582 阅读 · 0 评论 -
Android 中获取当前的 Activity
需求:获取当前的 Activity 对象,Activity 是系统创建的,一种方法:在 onCreate 的时候拿到引用,这样就得修改 onCreate 方法,还得维护一个数组去管理 Activity 的引用。第二种方法:通过反射拿到 ActivityThread 中的 mActivities 属性,进而拿到当前的 activity 对象( paused 为 false 的activity)。pub原创 2016-06-18 19:42:51 · 3871 阅读 · 1 评论 -
利用 Android 手机打造来电通知计划
最近住的地方总在晚上停电,还让不让人活了,大热天的,于是就晚上在外面先找个凉快的地方呆着,但是来电的时间不确定,有时候感觉应该来电了,回去了还是没电,那个热啊。那么问题来了,要是屋里来电了有人告诉我就好了!于是计划写一个小程序让它在屋里来电后通知。 利用现用资源:一台退休的手机 大概思路是这样的:家里的路由器是一直连着电源的,老手机是一直开着 wifi 的,来电后路由器通电,自动连接上网络,原创 2016-06-22 00:11:51 · 1094 阅读 · 0 评论 -
写一个 ButterKnife
ButterKnife 很多人都用过,能节省很多代码,最多的就是省去了很多 findViewById 语句。接下来自己写一个,就叫 BBKnife 吧。分析在使用 ButterKnife 时,需要书写下面的类似代码,以一个 Activity 为例ExampleActivity.javaclass ExampleActivity extends Activity { @BindView(R.id.原创 2016-07-31 23:46:39 · 986 阅读 · 0 评论 -
NestedScrollingParent 实现复杂交互效果
最终效果:1. 接口NestedScrollingParent 用来配置子视图( NestedScrollingChild )嵌套滚动。NestedScrollingParent 简称 NP NestedScrollingChild 简称 NCNC 产生一个 touch 事件,调用 startNestedScroll,表示开始分享出去 touch 事件, NP 的 onStartNestedSc原创 2016-09-02 10:11:02 · 3161 阅读 · 1 评论 -
WebView 实现 NestedScrollingChild
承接上文 NestedScrollingParent 实现复杂交互效果 ,在 NestedScroll 这一套流程中,NestedScrollingChild 不用考虑怎么去通知父布局如何滚动,只需要负责自己的事情:产生滚动事件,并将事件共享出去,产生 fling 事件,共享 fling 。NestedScrollingParent 简称 NP NestedScrollingChild 简称 NC原创 2016-09-02 10:12:08 · 3333 阅读 · 0 评论 -
Framework分析-点击Launcher中的图标启动Activity
Launcher也是一个应用,点击一个图标,开启一个新的应用。分析从点击图标到新的应用的Activity执行onCreate的执行流程.注意学习Binder机制 无论是通过Launcher来启动Activity,还是通过Activity内部调用startActivity接口来启动新的Activity,都通过Binder进程间通信进入到ActivityManagerService进程中,并且调原创 2016-02-29 22:55:06 · 1434 阅读 · 0 评论 -
Framework分析-Application的onCreate
ActivityThread并不是一个Thread,而是一个单纯的Java类,查看一下 ActivityThread 的源码final class ActivityThread,并没有继承Thread或者实现Runnable接口,ActivityThread 其中包含 main 方法,程序的入口地方,怎么看出来的呢? 我们开发过程中总会出现程序异常信息,细心看一下log,查看最下面的几行,最终问题出原创 2016-02-29 22:48:07 · 1218 阅读 · 0 评论 -
Kotlin + RxJava = Functional Powerhouse
原文链接 : Kotlin + RxJava = Functional Powerhouse 原文作者 : Thomas Nield 译文出自 : Hanks.xyz 译者 : hanks-zyh作为一个软件开发人员,我总是寻找方法来达到更少的代码做更多的事情。如果我只要修改一点代码就可以不断适应业务需求变化那就更好了,所以我必须把代码重写。Java语言一直是我的首选,因为它实用原创 2016-02-29 22:47:03 · 2086 阅读 · 0 评论 -
Android 下雪动画
原文链接 : Snowfall 原文作者 : Styling Android 译文出自 : hanks.xyz 译者 : hanks-zyh 校对者: desmond1121 状态 : 完成 这本是一个愉快的季节,但是,呵呵,胡扯! 因为这篇文章的发表时间是2015年的圣诞节,所以我们需要给Style Android用制造出一些节日气氛。感谢读者们,因为有的读者可能没有在翻译 2015-12-30 18:22:04 · 1571 阅读 · 0 评论 -
使用RxJava 提升用户体验
使用RxJava 提升用户体验 原文链接:https://medium.com/@diolor/improving-ux-with-rxjava-4440a13b157f#.qdhu122d1 翻译: hanks“网络永连接,服务器不出错,培根没肥肉”友好的用户体验通常是用户很爽,但开发者很痛苦。 当用户点击一个按钮后,因为后端没有及时响应而卡住界面,这回让用户很失望。 现在让我们创建原创 2015-11-29 23:39:15 · 1273 阅读 · 0 评论 -
Android性能优化
布局优化,绘制优化,内存泄露优化,响应速度优化,listview优化,bitmap优化,多线程优化 Traceview,Systrace,Oprofile,Heap Viewer,Memory Monitor,Allocation Tracker 量化流畅度布局优化 include 重用布局 merge 减少层级嵌套 viewstub 延迟加载 space 空白占位绘制优化原创 2016-01-25 01:00:32 · 682 阅读 · 0 评论 -
React-Native 鬼畜表情包app
QQ群,微信群,各种大神,各种表情,每到半夜,斗图大会,八仙过海,各显神通,良辰日天齐上阵。不服,下载鬼畜表情,参加到战斗中,无奈啊,app做的不是太方便,想起抓包把图片一下都下载下来,想起最近看到RN,正好练练手。 单文件批量抓取/** * Sample React Native App * https://github.com/hanks-zyh/233333 */'use stric原创 2016-01-25 01:03:38 · 2098 阅读 · 0 评论 -
Android 热修复总结
前段时间热修复这个词非常火,当时只是大体看了一下,今天抽空好好看了一下具体原理. 什么是热修复?简单的说就是用户不用重新下载一个新的apk安装,而是直接下载一个补丁包,通过补丁来替换一些出现bug的类, 当然下载补丁的过程用户一般是感觉不到的,表面上看是直接修复了bug.原理类似与插件开发,关于插件开发原理,看这篇Android插件原理剖析,其中介绍了一下java中的类加载器和android中的类原创 2016-01-25 01:05:05 · 1729 阅读 · 0 评论 -
Android 动手实现热修复
有了前面文章的理论支持,下面动手自己写一下热修复.原创 2016-01-25 01:06:25 · 739 阅读 · 0 评论