
Android
lyb2518
这个作者很懒,什么都没留下…
展开
-
Glide源码分析
在早期的Android开发中,图片加载其实一直是个比较麻烦的问题。我们在处理图片时会遇到各种各样的问题:内存溢出、列表中图片错位等等。但到了如今,这些问题基本上是不会再遇到了。由于很多的优秀的图片加载框架帮我们处理了图片相关问题的痛点,所以现在Android中关于图片加载的部分变得非常简单。Android中最著名的图片加载框架就是Glide了,我们今天来深入研究一下Glide的源码。转载 2019-09-02 15:04:16 · 297 阅读 · 0 评论 -
Android APP 性能优化的一些思考
今天想说的重点是Android APP 性能优化,也就是在开发应用程序时应该注意的点有哪些,如何更好地提高用户体验。一个好的应用,除了要有吸引人的功能和交互之外,在性能上也应该有高的要求,即时应用非常具有特色,在产品前期可能吸引了部分用户,但是用户体验不好的话,也会给产品带来不好的口碑。转载 2018-01-03 11:36:50 · 330 阅读 · 0 评论 -
vlayout 上滑加载更多问题
LoadMoreWrapper在不改动 RecyclerView 原有 adapter 的情况下,使其拥有加载更多功能和自定义底部视图。原创 2017-11-21 13:52:53 · 3168 阅读 · 4 评论 -
解析ConstraintLayout的性能优势
自从在去年的 Google I/O 大会上发布 ConstraintLayout 以来,我们一直不断改进该布局的稳定性,完善对布局编辑器的支持。我们还针对 ConstraintLayout 增加了一些新功能,帮助您构建不同类型的布局,例如引入链和按比例设置大小。转载 2017-09-12 10:45:58 · 5040 阅读 · 0 评论 -
自己动手编译Android源码(超详细)
作为android developer人人都应该有一份自己Android源码,这样我们就可以随时对自己有疑惑的地方通过亲手调试来加强理解。android源码编译的四个流程:1.源码下载;2.构建编译环境;3.编译源码;4运行.转载 2017-08-10 19:48:49 · 38015 阅读 · 8 评论 -
Android InputMethodManager 导致的内存泄露及解决方案
解决Android InputMethodManager 导致的内存泄露的问题转载 2017-07-22 13:11:14 · 1459 阅读 · 0 评论 -
Volley 源码解析
Volley 是 Google 推出的 Android 异步网络请求框架和图片加载框架。在 Google I/O 2013 大会上发布转载 2017-06-27 13:06:19 · 256 阅读 · 0 评论 -
利用Android Studio、MAT对Android进行内存泄漏检测
android开发中难免会遇到各种内存泄漏,如果不及时发现处理,会导致出现内存越用越大,可能会因为内存泄漏导致出现各种奇怪的crash,甚至可能出现因内存不足而导致APP崩溃。Android的内存泄漏分析工具常用有Android Studio和基于eclipse的MAT(Memory Analyzer Tool)。通过两者配合,可以发挥出奇妙的效果。转载 2017-07-12 20:13:52 · 334 阅读 · 0 评论 -
Android性能调优利器StrictMode
作为Android开发,日常的开发工作中或多或少要接触到性能问题,比如我的Android程序运行缓慢卡顿,并且常常出现ANR对话框等等问题。既然有性能问题,就需要进行性能优化。正所谓工欲善其事,必先利其器。一个好的工具,可以帮助我们发现并定位问题,进而有的放矢进行解决。本文主要介绍StrictMode 在Android 应用开发中的应用和一些问题。转载 2017-07-12 16:34:18 · 4769 阅读 · 1 评论 -
Installing Drozer on OS X El Capitan
drozer是MWR Labs开发的一款Android安全测试框架。是目前最好的Android安全测试工具之一。drozer提供了命令行交互式界面,使用drozer进行安全测试,用户在自己的console端输入命令,drozer会将命令发送到Android设备上的drozer agent代理程序执行。drozer采用了模块化的设计,用户可以定制开发需要的测试模块。转载 2017-07-03 13:10:50 · 380 阅读 · 0 评论 -
Android性能优化之Debug GPU Overdraw
过度绘制(Overdraw)描述的是屏幕上的某个像素在同一帧的时间内被绘制了多次。在多层次重叠的 UI 结构里面,如果不可见的 UI 也在做绘制的操作,会导致某些像素区域被绘制了多次,同时也会浪费大量的 CPU 以及 GPU 资源。转载 2017-06-30 13:24:47 · 2510 阅读 · 0 评论 -
Android性能优化之Profile GPU Rendering
渲染性能问题往往是偷取你宝贵帧数的罪魁祸首,这种问题很容易产生,很容易出现,而且在一个非常方便的工具的帮助下,也非常容易去追踪. 使用Peofile GPU Rendering tool,你可以在手机上就可以看到究竟是什么导致你的应用程序出现卡顿,变慢的情况.转载 2017-06-30 15:45:09 · 572 阅读 · 0 评论 -
移动 APP 网络优化概述
转载:http://blog.cnbang.net/tech/3531/?utm_source=androidweekly&utm_medium=website一般开发一个 APP,会直接调用系统提供的网络请求接口去服务端请求数据,再针对返回的数据进行一些处理,或者使用AFNetworking/OKHttp这样的网络库,管理好请求线程和队列,再自动做一些数据解析,就结束了。但对于一些大型 AP转载 2018-01-27 09:26:32 · 462 阅读 · 0 评论 -
《Android插件化技术——原理篇》
转载:https://mp.weixin.qq.com/s/Uwr6Rimc7Gpnq4wMFZSAag?utm_source=androidweekly&utm_medium=website | 导语 插件化技术最早从2012年诞生至今,已经走过了5个年头。从最初只支持Activity的动态加载发展到可以完转载 2018-01-27 09:33:39 · 8190 阅读 · 2 评论 -
What are the best practices for SQLite on Android?
What would be considered the best practices when executing queries on an SQLite database within an Android app?转载 2019-08-15 17:21:21 · 280 阅读 · 0 评论 -
Android SQLite -journal、-wal、-shm
在创建数据库时,不仅会生成xxx.db数据库文件,而且还会生成xxx.db-journal。这个-journal文件是用来干嘛的?其实这个文件是sqlite用来实现原子提交和回滚功能的。如果没有这个文件,SQlite将无法回滚未完成的事务,如果在事务中间发生崩溃或者掉电,那么整个数据库就有可能损坏。转载 2019-08-15 17:36:53 · 1227 阅读 · 0 评论 -
使用强大的 Mockito 测试框架来测试你的代码
Mockito 是一个流行 mock 框架,可以和JUnit结合起来使用。Mockito 允许你创建和配置 mock 对象。使用Mockito可以明显的简化对外部依赖的测试类的开发。转载 2019-07-07 15:23:15 · 342 阅读 · 0 评论 -
用 Dagger 2 实现依赖注入
Dagger 2 为你解析这些依赖,并生成把它们绑定在一起的代码。也有很多其它的 Java 依赖注入框架,但它们中大多数是有缺陷的,比如依赖 XML,需要在运行时验证依赖,或者在起始时造成性能负担。 Dagger 2 纯粹依赖于 Java 注解解析器以及编译时检查来分析并验证依赖。它被认为是目前最高效的依赖注入框架之一。转载 2019-07-07 12:03:15 · 236 阅读 · 0 评论 -
Android V1及V2签名原理简析
转载:https://juejin.im/post/5cd239386fb9a0320f7dfcbeAndroid为了保证系统及应用的安全性,在安装APK的时候需要校验包的完整性,同时,对于覆盖安装的场景还要校验新旧是否匹配,这两者都是通过Android签名机制来进行保证的,本文就简单看下Android的签名与校验原理,分一下几个部分分析下:APK签名是什么 APK签名如何保证APK信息...转载 2019-05-25 18:43:46 · 331 阅读 · 0 评论 -
彻底理解安卓应用无响应机制
转载:http://gityuan.com/2019/04/06/android-anr引言不论从事安卓应用开发,还是安卓系统研发,应该都遇到应用无响应(ANR,Application Not Responding)问题,当应用程序一段时间无法及时响应,则会弹出ANR对话框,让用户选择继续等待,还是强制关闭。绝大多数人对ANR的了解仅停留在主线程耗时或CPU繁忙会导致ANR。面试过无数...转载 2019-05-21 21:02:14 · 1996 阅读 · 0 评论 -
Android 架构组件(一)
转载:https://www.yuque.com/liangfei/programming/hr8o47Google 为了帮助 Android 开发者更快更好地开发 App,推出了一系列组件,这些组件被打包成了一个整体,称作Android Jetpack,它包含的组件如下图所示:老的 support 包被整合进了 Jetpack,例如上图 Foundation 模块的 App...转载 2019-05-19 21:44:09 · 678 阅读 · 1 评论 -
Matrix TraceCanary
转载:https://mp.weixin.qq.com/s/W4-1tfepKg2XMYvVn62B-Q什么是卡顿什么是卡顿,很多人能马上联系到的是帧率 FPS (每秒显示帧数)。那么多低的 FPS 才是卡顿呢?又或者低 FPS 真的就是卡顿吗?(以下 FPS 默认指平均帧率)其实并非如此,举个例子,游戏玩家通常追求更流畅的游戏画面体验一般要达到 60FPS 以上,但我们平时看到的大部...转载 2019-05-06 12:29:59 · 1445 阅读 · 0 评论 -
史上最全App瘦身实践
转载:https://mp.weixin.qq.com/s/_d5ztuOv9PxMrbK53FZiSQ目标业务方和开发都希望app尽量的小,本文会给出多个实用性的技巧来帮助开发者进行app的瘦身工作。瘦身和减负虽好,但需要注意瘦身对于项目可维护性的影响,建议根据自身的项目进行技巧的选取。分析app组成结构做瘦身之前一定要了解自己app的组成结构,然后要有针对性的进行优化,并且要逐...转载 2019-05-06 11:38:49 · 1414 阅读 · 0 评论 -
如何简单快速搭建 Android 大仓
转载:https://yrom.net/blog/2019/01/02/simple-way-to-construct-monorepo-for-android/书接上文,上回提到 B 站Android团队为了解决组件化后协作上的问题,已经采用了大仓(monorepo)的方案来组织代码。国内实践大仓的团队少之又少,更别提 Android 的大仓了,几乎没有来自其它团队的可借鉴经验。在这条路...转载 2019-05-04 17:29:30 · 746 阅读 · 0 评论 -
B 站 Android 代码库的演进历程
转载:https://yrom.net/blog/2018/10/18/evolution-of-android-codebase-organization-in-bilibili/早在2012年,B 站 Android APP便已上线。当时开发者不过一人,而如今,业务线众多、隶属不同团队的Android 端开发人员数以百计。从单兵作战到百花争鸣,代码库的组织管理也随之经过数次的改革、演进。...转载 2019-05-04 17:25:14 · 314 阅读 · 0 评论 -
Android MVP 架构
Sample Android app that we use at ribot as a reference for new Android projects. It demonstrates the architecture, tools and guidelines that we use when developing for the Android platform转载 2017-06-30 09:15:07 · 324 阅读 · 0 评论 -
Android Netty开发示例
Android Netty开发示例Netty是什么代码片段讲解Android Netty开发示例本文涉及到其它的基础知识有:对数据的字节处理对数据进行CRC32校验对数据的内容进行Blowfish加/解密原创 2017-04-08 18:23:46 · 13734 阅读 · 4 评论 -
[网络电话]Android CSipSimple开发实例
[网络电话]Android CSipSimple开发实例CSipSimple 是一款通用的支持SIP协议的互联网电话软件,可以在andriod的平板,手机上使用。支持语音编码: G.711 aLaw/uLaw, G.722.1, G.722, SPEEX, SPEEX-WB, AMR-WB, GSM, iLBC, G.729. 支持STUN, Outbound proxy server, Qos等。原创 2017-04-13 20:39:42 · 3388 阅读 · 0 评论 -
Android ListView 获取网络上的数据,动态地进行数据更新!
将数据动态地更新ListView中,搞了两个小时,终于搞定了,感谢 txlong_onz,文章地址:http://txlong-onz.iteye.com/blog/947620。 以下代码是怎么实现动态更新ListView的方法。package com.photographic.ui;import java.util.List;import com.原创 2012-07-04 17:55:16 · 11385 阅读 · 1 评论 -
继承了BaseAdapter,当在ListView单击时,获取该行里面的指定值的方法。
just take reference of of the text view if you extending a BaseAdapter like:listView.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView arg0, View arg1, int a原创 2012-07-05 13:29:52 · 3081 阅读 · 0 评论 -
Android获得火车时刻表Web Services的全部始发站名称
尽量写的简单些,希望对大家有所帮助。 一、下载 KSOAP2 包地址: http://code.google.com/p/ksoap2-android/source/browse/m2-repo/com/google/code/ksoap2-android/ksoap2-android-assembly/2.5.4/ksoap2-android-assembly-2.5.4-原创 2012-05-19 11:57:44 · 1911 阅读 · 4 评论 -
编写Android天气预报小程序的总结
研究《精通Android 3》书有一个月,对于所看过的知识点不是掌握的很好,所以想找个项目来练手,想到就去做,在eoeAndroid的开发社区找到了Android天气预报小程序,就把它下载了下来。首先,将项目的源代码导入到Eclipse里面,我使用的模拟器的版本是Android 2.3.3的,点击运行出现在我们眼前的是一个欢迎界面,心情有点激动,呵呵!如图所示:欢迎界面原创 2012-04-17 19:43:16 · 9107 阅读 · 16 评论 -
改变 Android EditText 的边框
1.创建一个自己的 EditText Widget,代码如下:package com.treasure.note.control;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;impor原创 2012-04-26 19:42:12 · 4282 阅读 · 1 评论 -
学习中的一些小事
当你遇到一个知识点不能够理解,分析了片刻,还是一头雾水,可以适当离开电脑一会儿,在头脑足够清醒的时候,再理清一下思路,有可能这个知识点就被掌握了。原创 2012-03-08 17:52:49 · 846 阅读 · 0 评论 -
Android RadioButton class three kinds of checked way
The first : main.xml file,RadioButton element add android:checked attribute, set "true";The second : use setChecked() on the RadioButton from within your onCreate() callback in your activity.examp原创 2011-12-14 20:02:13 · 651 阅读 · 0 评论 -
Android Layout:LinearLayout
LinearLayout是一个盒子模型(Box Model),以垂直或水平的方向,按照相对位置来排列所有的widgets或者其他的containers。所有被包含的widgets或者是containers都被堆放在container之后,因此一个垂直列表的每一行只会有一个widget或者是container,而不管他们有多宽,而一个水平列表将会只有一个行高(高度为最高子控件的高度加上边框高度)。L转载 2011-12-21 19:53:04 · 853 阅读 · 0 评论 -
Android Layout:FrameLayout
FrameLayout:该布局container可以用来占有屏幕的某块区域来显示单一的对象,可以包含有多个widgets或者是container,但是所有被包含的widgets或者是container必须被固定到屏幕的左上角,并且一层覆盖一层,不能通过为一个widgets或者是container指定一个位置。Container所包含的widgets或者是container的队列是采用的堆栈的结构,转载 2011-12-21 19:38:35 · 746 阅读 · 0 评论 -
Android Layout:RalativeLayout
我们从RalativeLayout可以知道,该布局的父子Container中所有的Widgets之间的位置都是相对的。你可以把Widget A放在Widget的左下方,或者放在Widget的底边并和Container的底边之间。它允许为Container或者widget指定其相对于其他widgets或者父Container的位置。Container或者widgets是按顺序排列的,如果第一个Con转载 2011-12-21 18:57:52 · 1054 阅读 · 0 评论 -
About Android custom Tokenizer(use for MultiAutoCompleteTextView)
在 Android 源码中,MultiAutoCompleteTextView 类里面自带了一个静态的 CommaTokenizer 内部类去实现静态的 Tokenizer 接口,分别将 Tokenizer 接口里面的三个方法都实现出来。CommaTokenizer 对象的作用是原创 2011-08-27 13:30:33 · 1639 阅读 · 0 评论 -
Android 数据格式解析对象 JSON 用法
1.JSON概念: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性,从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。 JSON可以将Java对象转成json格式的字符串,可以将json字符串转换成Java。比XML更轻量级,Json使用起来比较轻便和简单。JSON数据格式,在Android转载 2012-07-02 15:19:01 · 1265 阅读 · 0 评论