- 博客(28)
- 收藏
- 关注
原创 Android内存泄露及解决方法总结
1. 概述Java内存泄漏指的是进程中某些对象(垃圾对象)已经没有使用价值了,但是它们却可以直接或间接地引用到gc roots导致无法被GC回收。无用的对象占据着内存空间,使得实际可使用内存变小,形象地说法就是内存泄漏了。2. 常见泄露类型2.1. 集合类泄露如果集合类仅仅有添加元素,而没有相应的删除机制,会导致内存被占用。当将集合中元素置空,但是集合因为持有对元素的引用,导致内存回收不,而发生内存
2017-07-23 20:48:38
772
原创 人脸识别趟坑历程
1.人脸识别概述人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术。用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部的一系列相关技术。其中技术包括图像采集、特征定位、身份的确认和查找等等。简单来说,就是从照片中提取人脸中的特征,比如眉毛高度、嘴角等等,再通过特征的对比输出结果。听着这么高大上,很高科技,然而目前很多人脸识别的落地应用还处
2017-07-05 11:51:07
10994
5
原创 人脸识别预研
1. 人脸识别发展以往的人脸识别主要是包括人脸图像采集、人脸识别预处理、身份确认、身份查找等技术和系统。现在人脸识别已经慢慢延伸到了ADAS中的驾驶员检测、行人跟踪、甚至到了动态物体的跟踪。由此可以看出,人脸识别系统已经由简单的图像处理发展到了视频实时处理。而且算法已经由以前的Adaboots、PCA等传统的统计学方法转变为CNN、RCNN等深度学习及其变形的方法。现在也有相当一部分人开始研究3维人
2017-07-05 09:54:08
2318
原创 APK 瘦身
APK 大小分析NimbleDroid 分析方法数的图片优化VectorDrawabletinyPng 有损压缩png→jpgjPG→Webp(反应在 小米2刷成4.xx的手机上,未能正确识别xml文件中描述的webp图片,导致界面起来后加载xml布局文件,文件加载webp失败,及 三星的部分机型上,部分有alpha背景部分的图会有一条很明显的黑线 )大图缩小去掉库中未用的默认图
2017-06-27 17:36:27
497
原创 进程通信之 Socket笔记
TCP 协议一种面向连接的、可靠的、基于字节流传输层通信协议TCP被认为是最稳定的协议,因为它具有以下几个特点: - 面向连接,“三次握手” - 双向通信 - 保证数据按序发送 - 超时重传TCP的三次握手为啥三次? 为了防止已经失效的连接请求报文突然又传送到服务端,因而产生错误。减少因延迟高拥塞大对报文传输的影响。在这三次握手过程中,任何一次未收到对面回复都要重发,保证请求报文的及时
2017-06-27 17:30:05
472
原创 View 浮在软键盘上多种实现方式及踩坑
做andriod 开发的都知道当我们需要view 浮在软键盘上最简单的做法就是使用ScrollView 将所需要浮起的View 包裹起来,然后利用ScrollView 与软键盘的特性就能实现浮起来的效果。 然而还是有不同的形式的,及坑要踩。本文就简单介绍下一. ScrollView 窗口上移软键盘浮起时布局变化与占据焦点的EditText位置有很大关系。当占据焦点的EditText在软键盘上面布
2017-05-01 20:45:13
1359
原创 Android 的jar混淆踩坑之旅
最近公司需要将将之前提供个客户的jar进行混淆以保护代码,防止信息泄露。然后在网上搜了一大堆相关的android jar混淆资料,然后实践下来各有各的坑爹! 网上关于android 打jar包,proguard混淆的资料比较多,笔者就赘述了,需要可以的可以google。 本文就记录混淆jar过程中遇到的各种坑及解决办法,希望对遇到同样问题的读者有所帮助。问题1. 需不需要导入jdk 的jar包?
2017-04-29 15:35:02
1914
1
原创 ABD 实用技巧
一. 概述adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序,Android studio 可以直接在terminal 中操作adb,说白了就是debug工具。。 借助adb工具,我们可以管理设备或手机模拟器的状态。还可以进行很多手机操作,如安装软件、系统升级、运行shell命令等等。其实简而言
2016-10-27 18:49:41
694
原创 《第一行代码》拾遗
本文是在看郭霖的《第一行代码-Android》过程中的知识点汇集,下面的摘录知识点都是我认为之前Android开发中容易忽视,或者特别重要的知识点。隐式启动一般依靠action、category、data进行匹配,只有activity的这三项内容能够匹配Intent指定内容时才会响应Intent。 每个Intent 只能指定一个action,却能指定多个category。 隐式启动除了能启动自
2016-08-17 09:13:41
507
原创 《App研发录》知识点汇总
《App研发录》这部书是包建强写的,说来也巧,在读这边书之前在看池建强的《Mac 人生元编程》 ,所以读这本书的时候,将这两个建强搞混。这本书花了我一周多一点的时间看完。昨天晚看完久久不能寐,一是惊叹这本书的干货太多,这本书不同于市面上其他的Android 教程,给你讲一堆API方法,Android 基础,作者从一个APP团队的负责人的角度高屋建瓴的讲解App框架设计,Bug收集汇总分析,团队建设,
2016-07-23 03:02:31
631
原创 优雅的懒加载方法
最近在重构公司公司的主页,其中用到了懒加载,所以找了网上的懒加载的介绍的博客,读了好几篇关于懒加载的文件,发现不是讲解太简单,就是代码不够清晰,而且在懒加载的实现原理上没有透彻的讲清楚,在实际应用实践中会发现各种不同问题。小弟不才,愿意认真分析懒加载的原理实现与应用,希望对各位看官有些收获。在使用viewpager(或其他容器)与多个Fragment来组合使用,ViewPager 会默认一次加载当前
2016-07-23 02:55:25
3083
2
原创 StrictMode 严格模式应用
Android 2.3提供一个称为严苛模式(StrictMode)的调试特性,Google称该特性已经使数百个Android上的Google应用程序受益。那它都做什么呢?它将报告与线程及虚拟机相关的策略违例。一旦检测到策略违例(policy violation),你将获得警告,其包含了一个栈trace显示你的应用在何处发生违例。你可以强制用警告代替崩溃(crash),也可以仅将警告计入日志,让你的应
2016-06-21 17:13:27
896
原创 数组类型不同解析问题探究
我们在开发过程中可以遇到json 数组中的具体的javaBean 不一致现象。例如:{"list":[{ "type":a, "data":A,},{ "type":a, "data":B}]}如上图所示,list中data的类型根据type的值而变化。像这种bean类型不一致问题,一直烦恼着开发者,现在简单介绍下,几种 可行的解决思路。方法一:合并Bean如果A
2016-06-20 13:00:04
487
原创 断点调试总结.md
Android Studio的断点调试非常方便,有不同的断点类型,可供使用例如: - 一般断点 - 条件断点 - 方法断点 - 属性断点 - 一次性断点 - 日志断点 如下图:
2016-06-20 12:32:43
564
转载 八大排序
概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,
2016-05-17 20:00:54
353
原创 玩玩人脸识别
人脸识别Android自带的API:FaceDetectorStep 1: 读取bitmap图片(API 只接受Bitmap) (拍照或者从相册中也可以)Bitmap sampleBmp=BitmapFactory.decodeResource(getResources(), R.drawable.sample1);Step 2: 通过FaceDetector API进行人脸识别//FaceD
2016-05-14 16:51:37
962
原创 Toolbar总结
Toolbar其实是一个ActionBar的变体,大大扩展了Actionbar。我们可以像对待一个独立控件一样去使用ToolBar,可以将它放到屏幕的任何位置,不必拘泥于顶部,还可以将它改变高度或者是在ToolBar上使用动画。从最新的SDK看,很多actionbar的方法已经变成了废弃的了,所以我们可以断定未来就是Toolbar将会完全取代ActionBar!1. 布局可以直接在xml布局文件中设
2016-05-14 16:46:00
448
原创 Palette(调色板)
利用Palette库来取得图片中的主要色彩使用这个Android的开源库android-support-v7-palette。流程: 得到一个bitmap,通过方法进行分析,取出LightVibrantSwatch,DarkVibrantSwatch,LightMutedSwatch,DarkMutedSwatch这些样本,然后得到rgb。Palette这个类中提取以下突出的颜色: Vibr
2016-05-14 16:32:47
1818
原创 Property Animation(属性动画)
动画类型View Animation(Tween Animation 补间动画) 只能支持简单的缩放、平移、旋转、透明度等基本的动画,且有一定的局限性 动画时View的真正的View的属性保持不变,实际位置未改变 原理:提供动画的起始和结束状态信息,中间的状态根据上述类里差值器算法填充Drawable Animation(Frame Animation 帧动画)Property Anim
2016-05-14 16:26:42
795
原创 App Links
安卓6.0加强了软件间的关联,点击一个web链接就能直接跳转到app,而不再是网页。 在Android M之前,点击一个链接会产生一个弹出框,询问用户打开哪个应用 - 包括浏览器应用。但是谷歌在Android M 实现了一个自动认证(auto-verify)机制,让开发者可以避开这个弹出框,使用户不必去选择一个列表,直接跳转到他们的app。 步骤如下:网页端statements.json文件配
2016-05-14 16:24:08
804
原创 Chrome Custom Tabs
Chrome Custom Tabs 标签优点Chrome自定义标签页(Custom Tabs)将允许应用预加载,从而将网页的加载时间直接减半。 它的速度比WebView更快,预加载的效果甚至好于Chrome本身。 持良好的用户体验,并且让用户感觉这个自定义 Tab 就是您应用的一部分。 使用方法比WebView 简单,只需要一行代码,和直接调用系统浏览器显示网页没啥区别 有大量自定义属性
2016-05-14 16:21:10
1083
原创 proguard混淆
为了防止开发APP的重要code 被泄露,我们往往需要混淆(Obfuscation code ), 也就是把方法,字段,包和类这些java 元素的名称改成无意义的名称,这样代码结构没有变化,还可以运行,但是想弄懂代码的架构却很难。 proguard 就是这样的混淆工具,它可以分析一组class 的结构,根据用户的配置,然后把这些class 文件的可以混淆java 元素名混淆掉。在分析class 的,
2016-04-18 14:10:54
3658
原创 Android Studio gradle总结
Gradle是什么?Gradle 是以Groovy为基础,面向java应用,基于DSL语法的自动化构建工具。是google引入,替换ant和maven的新工具,其依赖兼容maven和ivy。使用gradle的目的: 更容易重用资源和代码; 可以更容易创建不同的版本的程序,多个类型的apk包; 更容易配置,扩展; 更好的IDE集成;首先明确gradle跟maven一样,也有一个配置文件,mav
2016-04-17 02:23:01
750
原创 OkHttp3升级实践与之前2.0对比
Okhttp是一个高效的Http客户端,我们公司的app也采用Okhttp。 OKhttp在过年之前更新到了3.0了。3.0相对与之前的2.0变动比较大,不能直接升级版本后就行,现在讲讲我在将OkHttp升级到3.0过程中需要更改的地方,及okhttp3.0 与之前的2.0的对比。1,包名改变包名改了由之前的 com.squareup.http.* 改为 okhttp3.* 我们需要将导包名直
2016-03-07 14:47:12
2969
原创 Android 原生BottomSheet 介绍及坑
Android Support Library 23.2 推出之后,增加了几个功能,例如支持Vector Drawables 和Animated Vector Drawables;增加AppCompat DayNight 主题;Design 库中增加Bottom Sheets,RecyclerView 支持 auto-measurement,之前的wrap_content ,match_parent
2016-03-07 11:41:46
5276
原创 FloatingActionButton
Design Support Library库吸收了8 个新的 material design 组件!最低支持 Android 2.1,其实很多组件都是Github上比较火的,只是谷歌把它官方化了,便于开发者使用。今天我们来学习 FloatingActionButton,TextInputLayout,Snackbar,TabLayout 四种控件。 使用需要导入support.design F
2015-11-24 12:53:53
617
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人