
Android开发笔记
文章平均质量分 55
TTKatrina
迷茫的时候,选择艰难的那条路
展开
-
Context.startForegroundService() did not then call Service.startForeground的解决方案
Your app will crash if you call Context.startForegroundService(…) and then call Context.stopService(…) before Service.startForeground(…) is called.Some suggestions://千年难解的老bug,搜索了一下如下文章分析的不错stacko...原创 2020-01-21 16:54:17 · 7423 阅读 · 2 评论 -
Android TCP长连接 心跳机制及实现
背景知识智能手机上的长连接心跳和在Internet上的长连接心跳有什么不同Android系统的推送和iOS的推送有什么区别几种推送的实现方式协议1XMPP简介2 MQTT简介3移动端消息推送 xmpp 和 mqtt 哪个更费电心跳代码实现Demo建立一个带有心跳检测的SocketDemo维护任何一个长连接都需要心跳机制,客户端发送一个心跳给服务器,服务器给客户端一个心跳应答,原创 2017-06-09 12:16:25 · 14640 阅读 · 0 评论 -
Android TextView 添加下划线的几种方式
转载地址: http://www.cnblogs.com/popfisher/p/5191242.html原创 2017-07-01 10:36:27 · 1609 阅读 · 0 评论 -
收藏HuKai关于Android性能优化的文章
发现不会的越来越多,需要修炼内功. 胡凯的博客中图片都做得很精致,感觉又打开了一扇窗.请花时间阅读原文和看google视频; JAN 17TH, 2015Android性能优化典范 - 第1季 http://hukai.me/android-performance-patterns-season-2/ http://hukai.me/android-performance-patterns-原创 2017-06-09 15:17:10 · 467 阅读 · 0 评论 -
[摘抄]游戏中socket断网重连+心跳包
可以引起网络连接关闭的情况有以下4种:直接调用Socket类的close方法。 只要Socket类的InputStream和OutputStream有一个关闭,网络连接自动关闭(必须通过调用InputStream和OutputStream的 close方法关闭流,才能使网络连接自动关闭)。在程序退出时网络连接自动关闭。 将Socket对象设为null或未关闭最使用new Socket(…)建原创 2017-06-07 21:06:25 · 5191 阅读 · 0 评论 -
ListView自动滚动到底部
设置属性 stackFromBottom : ture transcriptMode : alwaysScroll原创 2017-06-30 13:24:22 · 567 阅读 · 0 评论 -
关于Android中WebView的点滴
一浏览器缓存机制移动端 Web 加载性能缓存优化二配置项列表WebView的常用方法WebSettings常用方法三有些坑内存泄露的应对后台无法释放js 导致耗电onPageFinished是否代表加载完毕收集链接在项目中逐步发现对WebView的认知还是不够,基本的用法会,但遇到稍微复杂的bug就摸不着头脑.在搜集过程中遇到一些总结不错的链接,记录在此, 以备后用:一.浏览器缓原创 2017-06-08 22:34:35 · 707 阅读 · 0 评论 -
RTMP协议相关
带你吃透RTMP, 2016-3-6RTSP协议、RTMP协议、HTTP协议的区别, 2015-10-13 rtmp协议简单解析以及用其发送h264的flv文件,2012-09-24 RTMP 协议学习总结 2013-11-12原创 2017-06-19 14:14:08 · 408 阅读 · 0 评论 -
使用MultipartEntity上传图片文件
自己写一个MultipartEntity:public class MultipartEntity {private final static char[]原创 2017-05-20 17:37:42 · 2524 阅读 · 0 评论 -
根据url获取请求中的cookie
建立网络连接, HttpURLConnection conn = (HttpURLConnection) imgUrl.openConnection() 获取getHeaderFields: Map< String, List> map = conn.getHeaderFields(); 再get(“Set-Cookie”): List cookies = map.get(“Set原创 2017-05-18 09:27:07 · 6620 阅读 · 0 评论 -
[采集]网络框架对比分析
Retrofit分析-漂亮的解耦套路 ; stay4it 2016.04.07这么多开源框架,该用哪个好?Android网络框架比较ANDROID开源项目推荐之「网络请求哪家强」Android实战之你应该使用哪个网络库? Android图片加载库的选择与如何封装? https://github.com/kymjs/RxVolleyAndroid 三大图片缓存原理、特性对比原创 2017-05-16 15:42:57 · 347 阅读 · 0 评论 -
[转载]java Timestamp、Date和String之间的互转
业务需求:时间戳long型数据相减.请求带有时间戳请注意,yy-MM-dd hh:mm:ss是12小时制格式。yy-MM-dd HH:mm:ss是24小时制格式。1.String 转 DateString dateStr = “2012-12-31 00:00:00”;Date date = new Date();DateFormat sdf = new SimpleDateFormat(“yy转载 2017-05-15 16:02:08 · 478 阅读 · 0 评论 -
[转载] ubuntu下如何查找某个文件的路径
find / -name 文件名 locate 文件名转载 2017-05-15 15:51:21 · 1038 阅读 · 0 评论 -
Ubuntu16.04下搭建Cocos2D-X 3.15开发环境
1.到官网下载压缩包 http://www.cocos2d-x.org/download Download 3.15, 解压缩存储到某个路径下; cocos2d-x-3.152.进入路径新建一个hello world项目 cd tools/ cd cocos2d-console/ cd bin/ ./cocos new HelloWorld(项目名称) -p com.example.h原创 2017-05-11 16:17:02 · 3528 阅读 · 1 评论 -
[转载]Android中asset文件夹和raw文件夹区别
转载自:http://www.cnblogs.com/leizhenzi/archive/2011/10/18/2216428.html*res/raw和assets的相同点: 1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。*res/raw和assets的不同点: 1.res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.fil转载 2017-07-20 11:07:56 · 307 阅读 · 0 评论 -
Retrofit2 笔记
Retrofit是针对于Android/Java的、基于okHttp的、一种轻量级且安全的、并使用注解方式的网络请求框架。Retrofit的优势首先,Retrofit使用注解方式,大大简化了我们的URL拼写形式,而且注解含义一目了然,简单易懂; 其次,Retrofit使用简单,结构层次分明,每一步都能清晰的表达出之所以要使用的寓意; 再者,Retrofit支持同步和异步执行,使得请求变得异常简单原创 2017-06-07 09:44:03 · 874 阅读 · 0 评论 -
[转载]Android系统运行机制
发现一篇博文中的图片很好看,贴在此:Android系统剖析 和 Android系统的运行机制,mattermon,2015-02-28Android源码学习之八—系统启动过程,2010-12-31Android的启动过程可以分为两个阶段,第一阶段是Linux的启动,第二阶段才是Android的启动,下面我们分别来了解一下具体的过程。首先是Linux启动,这一部分我想就可以略过了,无非是Linux的B转载 2017-07-21 15:15:42 · 521 阅读 · 0 评论 -
[占坑]应用内存优化
最近参与的项目中内存占用太多,经常跑monkey的时候出现OOM.通过Android Studio的Profile工具查看Memory,点击dump按钮可以看到堆转储的列表显示,却不知道从何处分析起。先暂存几篇实践性的文章,细读一下,有实践效果后再补充本文。1.【腾讯质量开放平台】我这样减少了26.5M Java内存!2017/12/21 2.【掘金】Android性能优化:全面带你了解 ...原创 2018-11-13 17:50:45 · 400 阅读 · 0 评论 -
[整理]队列
Java集合类(5)——Queue接口及其实现类 PriorityQueue实现类,Deque,LinkedList并发队列-有界阻塞队列ArrayBlockingQueue原理探究 offer,put,take,poll,peek,sizejava数据结构与算法之(Queue)队列设计与实现 抽象数据类型,顺序,链式,双链表....转载 2018-08-23 16:10:33 · 410 阅读 · 0 评论 -
[zz]Difference between ContentUris.withAppendedId and Uri.buildUpon().appendPath
from stackoverflowhttps://stackoverflow.com/questions/36372392/difference-between-contenturis-withappendedid-and-uri-buildupon-appendpath转载 2018-08-23 15:59:23 · 860 阅读 · 0 评论 -
转载一篇详细的分析:Android View绘制和显示原理简介
原文链接: Android View绘制和显示原理简介,2016-10-14图片没有粘贴过来,还是去原链接看吧。现在越来越多的应用开始重视流畅度方面的测试,了解Android应用程序是如何在屏幕上显示的则是基础中的基础,就让我们一起看看小小屏幕中大大的学问。这也是下篇文章——《Android应用流畅度测试分析》的基础。首先,用一句话来概括一下Android应用程序显示的过程:And...转载 2018-03-20 13:56:42 · 509 阅读 · 0 评论 -
转载张明云Android应用性能优化经验分享ppt
原ppt忘了从哪里推荐下载的,里边的总结扩展了本人视野,故转载摘抄部分如下:四类性能优化指标: 没有给出ppt链接很抱歉…转载 2018-01-04 15:20:28 · 669 阅读 · 0 评论 -
Android UI渲染总结
【转载地址:http://blog.youkuaiyun.com/jiahui_zhu/article/details/52212412】 Android UI渲染分为3个过程,分别是测量、布局和绘制,这3个都是深度优先准则,父UI在子UI之前绘制,再按顺序绘制兄弟UI。 Android每16ms发一次VSYNC信号触发UI渲染,只要16ms能达到一个流畅的画面,用户就不会感到卡顿。1000 / 16 ≈6转载 2017-10-19 15:07:47 · 720 阅读 · 0 评论 -
shell 清理app缓存
使用shell清理app缓存 adb shell pm clear 包名查看测试机当前最上层页面: adb shell dumpsys activity |grep -10 “activities from top to bottom”原创 2017-09-19 18:35:53 · 13804 阅读 · 0 评论 -
logcat查看网络请求相关log
adb logcat -v threadtime |grep HTTP原创 2017-09-19 14:24:45 · 3460 阅读 · 0 评论 -
如何做到手机本地图片快速加载?
如何做到手机本地图片快速加载?产品形态,选择手机本地图片,先展现文件夹list,再进入分文件夹查看具体图片,listview+gridView形式; 第二种形式:类似手机qq,优先显示最近时间点的多张图片,若不是用户所需,再选择文件夹,再进入看该路径下图片.注意: 图片缩略图大小需要限制,若不压缩,占用内存会很大,造成ANR 加载缓慢,考虑是否做了图片两级缓存,是否在ui线程执行耗时操作,有没原创 2017-08-28 17:25:07 · 1354 阅读 · 0 评论 -
浏览器缓存怎么做
ajax在做什么,应用场景? pushserver与websocket怎么实现Thinking in Java, 并发-容器-类型-接口.原创 2017-08-28 17:24:34 · 575 阅读 · 0 评论 -
源码中throw new RuntimeException("Stub!");的含义
几乎所有的android源码实现都有throw new RuntimeException(“Stub!”);这么一段代码,例如:public boolean startActivityIfNeeded(Intent intent, int requestCode) {throw new RuntimeException("Stub!");}1“RuntimeException(“Stub!”)”原创 2017-07-27 12:24:04 · 15444 阅读 · 1 评论 -
[转载]Android系统的运行机制: 启动流程与层间交互
Android系统剖析 和 Android系统的运行机制: 启动流程与层间交互,2015-02-28Android运行机制1. 启动流程所有从init开始…与大多数的基于Linux系统在启动阶段类似,bootLoader加载Linux内核,然后开始init进程。 init启动Linux守护进程,包括: USB守护进程(usbd)来管理USB连接 Android调试桥守护进程(adbd)来管理A转载 2017-07-21 19:10:51 · 487 阅读 · 0 评论 -
Dialog, DialogFragment, PopupWindow比较
随着Fragment这个类的引 入,Google官方推荐大家使用DialogFragment来代替传统的Dialog.1,AlertDialog与DialogFragmentbefore:AlertDialog dialog = new AlertDialog.Builder(this) .setTitle("Dialog") .setMessage("thisis a dialog转载 2017-05-10 20:42:41 · 2953 阅读 · 0 评论 -
如何不调用notifyDataSetChanged()时更新ListView的某一项数据
通过结合使用View#getChildAt(int index)和ListView#getFirstVisiblePosition().方法取自StackOverFlow: [1] http://stackoverflow.com/questions/3724874/how-can-i-update-a-single-row-in-a-listview原创 2017-05-10 18:19:15 · 515 阅读 · 0 评论 -
RecyclerView的五个开源项目
转载自:http://www.bkjia.com/Androidjc/1120983.htmlRecyclerView相比ListView增加了很多新特性:Adapter中的ViewHolder模式 - 对于ListView来说,通过创建ViewHolder来提升性能并不是必须的。因为ListView并没有严格的ViewHolder设计模式。但是在使用RecyclerView的时候,Adapter转载 2016-06-21 16:38:50 · 2249 阅读 · 0 评论 -
BUG 收集
bug收集xml的空指针,java中的addRule,ImageView的ScaleType,制作.9图原创 2016-04-06 11:39:16 · 832 阅读 · 0 评论 -
图解Java快速排序(基于数组)
最近想弄明白快速排序的实现原理,直接看代码有点迷糊,所以从网上找了图解,好明白得多。现附上链接:http://zzqrj.iteye.com/blog/572620转载既然注明出处了,就厚颜无耻的列出其代码实现和图解吧! 因为原文言简意赅,我这里加了一些自己的理解,可能废话,但起码有益于我自己理解~ 快速排序采用分而治之的思想,实现步骤是: 确定中心元素, 将中心元素与表的第一原创 2016-07-07 10:47:59 · 1362 阅读 · 0 评论 -
什么场合适合用CurcorAdapter?
什么场合适合用CurcorAdapter?ListView要读取数据表中的数据。1.CursorAdapter的继承关系图CursorAdapter继承于BaseAdapter,有一个直接子类SimpleCursorAdapter。2.CursorAdapter的用法CursorAdapter继承了BaseAdapter后覆盖它的getV原创 2015-12-08 20:29:47 · 617 阅读 · 0 评论 -
Git使用记录
有时候本地使用git branch -a 仍然会看到远程已经删除了的分支,可以使用以下指令清理branch列表git remote prune origin或git fetch -p ❤️2016.2.16 GitGit 补充git checkout 实际上是修改工作区文件的内容,让其指向不同的branch。如果我们checkout的不是本地的branch 比如刚刚我checkout remote原创 2016-07-13 15:05:52 · 1021 阅读 · 0 评论 -
Scroller的方法startScroll、fling、computeScrollOffset
最近在使用开源库TableFixHeaders(https://github.com/InQBarna/TableFixHeaders),对于其中Scroller的用法不清楚,故看看这几个方法干了什么。点与点之间的计算 + 触摸事件的分发。1. startScroll当startScroll执行过程中即在duration时间内,computeScrollOffset 方法会一直返回false,但当原创 2016-07-12 13:07:36 · 7919 阅读 · 0 评论 -
Android中贝塞尔曲线的使用
quadTo & cubicTo 画二次和三次贝塞尔曲线原创 2016-06-05 17:22:03 · 1975 阅读 · 1 评论 -
GitHub项目跟进
开源库GitHub项目后续添加原创 2016-05-09 15:30:17 · 589 阅读 · 0 评论 -
Android动画合集
Android 动画 &ListView 博文收集原创 2016-05-06 14:13:09 · 463 阅读 · 0 评论