Android总结
文章平均质量分 66
androidstarjack
生命不息,奋斗不止,万事起于忽微,量变引起质变
展开
-
android6.0运行时权限完美封装
前几天看了郭大神的运行时权限的专讲,深受启发,由于现在基于目前项目中的运行时权限封装的还不是那么完美,趁着郭神建议的还是历历在目。于是把它完整的敲了下来。并在此基础上添加上自己的一些见解,封装成一个完整的demo,希望与大家进行交流与。在这里我进行了简单的在activity中简单进行获取权限和工具类封:某一个权限被禁止或者是所有的权限被禁止,这里我做了去到烯烃界面去设置的处理: ...原创 2017-01-03 13:41:13 · 4002 阅读 · 2 评论 -
2017经典面试题必杀技——你值得收藏
最近总结了一些java方面的面试题,给大家分享一下原创 2017-04-23 22:54:46 · 4366 阅读 · 6 评论 -
BlockCannery-一个强大的Android程序调试工具,轻松帮你找出卡顿
还在为项目中的内存泄露发愁呢?还在为卡顿现象找不到原因吗?今天介绍一个强大的调试工具——*BlockCannery*。学完这个相信你能收获不少。BlockCannery- 轻松找出Android App界面卡顿元凶BlockCanary 是一个 Android 平台的一个,应用只需要实现一个抽象类,提供一些该组件需要的上下文环境,就可以在平时使用应用的时候检测主线程上的各种卡慢问题,并通过组件提供的原创 2017-04-20 00:15:30 · 3160 阅读 · 0 评论 -
ListView个性化滑动指示器酷炫效果
前几天看到有好多人搞了一个listView的一个指示特效。然后自己参考了一下面对这样的效果年会想起来几种思路? - 自定义scrollView+scrollBar - 自定义ListView+自定义ScrollBar - 自定义 RecycleView - 自定义Behavior - 自定义listView + PopuWindows - 自定义ViewGroup 这几种哪一种是最合原创 2017-04-04 16:49:28 · 2554 阅读 · 0 评论 -
安卓8.0已经来了——你期待已经的新特性
最近谷歌Android O(安卓8.0)第一个开发者预览版此前已经放出,究竟有什么样的新特性呢?目前Android O致力于用户的体验方面上,让我们来探究一下。Android O预览版现已登陆Google Nexus 6P以及Pixel系列产品,虽然暂时无法确定版本号最终会不会是Android 8.0,不过在预览版中还是看到了未来安卓系统的一个发展方向。原创 2017-04-11 13:13:53 · 1587 阅读 · 0 评论 -
解决ListView列表setEmptyView无效问题及源码解析
很多童鞋们认为ListView的setEmptyView设置空界面无效的。通常在网上查了查,然后来按照网谁上的做法直接复制粘贴一下。效果出来就OK了。身为一个开发者,我们既要知其然,也要知道其所以然。 接下来我们根据源码分析来 解决我们的问题原创 2017-03-14 13:23:13 · 4639 阅读 · 0 评论 -
强大的AndroidStudio调试工具——Stetho
查看sqlite里面的数据都要通过这个Android Device Monitor找到/data/data/com.xxx.xxx/databases里面的db文件,然后导出到PC上,最后用PC上的数据库工具打开来查看。- 或者使用第三方的工具去查看(在手机root的前提下才能使用) 接下来我们来看一下Stetho调试带来的好处。原创 2017-03-23 21:44:32 · 3381 阅读 · 0 评论 -
高级UI特效之酷炫水波纹动画
最近研究了一个特效动画: 一个水波纹动画的动态效果。有兴趣的童鞋们可以去了解一下。定义组件大家都非常熟悉。不可以参考如不熟悉童鞋可以去参考:http://blog.csdn.net/androidstarjack/article/details/42567301水波纹动画展示效果:针对于这样的效果我们可能想起来的绘制方式有:第一种方式: 正弦曲线 计算x,y。VauleAnimation 控制原创 2017-03-12 17:52:01 · 4685 阅读 · 0 评论 -
深入了解Bitmap源码解析及经验总结
Bitmap的分析与使用在Android应用里,最耗费内存的就是图片资源。而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常。所以,对于图片的内存优化,是Android应用开发中比较重要的内容。先看看关于Bitmap13个的用法1、Drawable 的用法 Resources resources = mConte原创 2017-03-21 21:57:10 · 6262 阅读 · 1 评论 -
手写Service后台下载app——跳出DownloadManager系统7.0之坑
前言之前项目中有关app的现在和更新相关工具类一直用的是Android系统下载管理DownloadManager功能。如果随着Android系统的不断提升再加上Android开源性 手机厂家 对此作恶部分改动。导致一些系统自带的工具类出现异常情况。华为P9华为P9/P9 Plus上线,你的APP准备好了吗?新机入手后,MTC率先从应用市场随机下载部分APP做基于P9/P9 Plus的兼容性测试,在原创 2017-03-09 23:01:41 · 4462 阅读 · 1 评论 -
这些Android面试题,你值得收藏
这些关于技术上的面试题, 你值得收藏你最近几年的计划是什么? 希望技术达到一个层次,成为一个技术方面的专家原创 2017-02-22 23:06:49 · 3051 阅读 · 0 评论 -
获取手机SD卡路径之爬坑解决方案
android 系统是开源的,于是各种产商各种瞎改android系统 ,导致不同版本的手机的SD卡的路径千奇百怪。三星,HTC…等比较特殊。有时候让我们Android程序员感到很迷茫,不得不怀疑自己的人生。为什么总是坑我们这些Android程序员?抱怨是没有用的,只有不断去才坑,不断的去总结了。在这里记录下我试验的几种方案。方案一:通过Enviroment类获取存储设备路径 android的官方文原创 2017-03-03 15:10:18 · 7121 阅读 · 2 评论 -
子线程不能更新UI线程总结
子线程不能更新UI线程总结有时候大家做项目的时候偶尔会碰到这个错误。不用说大家都知道是子线程更新主线程(UI)线程的问题,同样大家也会给出相对应的解法:使用handle+Thread方法通过发送Message进行更新UI线程。原创 2017-01-09 22:10:32 · 1600 阅读 · 0 评论 -
翻翻git之---实用工具类Lazy(绝对的好东西,走过路过别错过)
今天还是继续昨天的从Git上找点“有用的”,“好玩的”,“推荐的”东西给大家,今天贴的是一个工具类。地址如下https://github.com/ddwhan0123/Lazy原作者Blog:http://weibo.com/2675061813/profile?topnav=1&wvr=6他有一些比较常用的,诸如设备状态啊,土司啊,窗口啊,测量啊什么的,还有些我觉得平时回去搜,但是不多的资源,如拼音和字母的转换的处理,WebView管理器,创建删除快捷图标等原创 2016-02-03 11:30:07 · 1728 阅读 · 1 评论 -
Android 微信支付总结
由于公司运营需要,Android客户端要增加微信支付。在看了几遍官方文档之后,加上之前有集成微信分享的经验,所以很快就把调用微信支付的代码写好了,待微信支付相关接口完成后联调时,才发现山高路远坑深啊!从下午2点半开始调试,一直折腾到快6点,那个微信支付界面才“千呼万唤始出来”,更坑爹的是,压根儿就不是我客户端的问题,而是后台接口那边sign生成时出了问题。在解决问题的过程中,看到网上太多关于微信支原创 2016-03-22 07:40:42 · 10878 阅读 · 14 评论 -
android 支付宝的植入 《曾经踩过的坑》
最近公司有需求在项目中要植入支付宝支付等功能。 在完成植入的过程中,遇到了一些坑,今天趁趁任务不多做了个总结。分享给大家,希望以小伙伴不要陷入这些坑中以免浪费很多的时间。原创 2016-10-13 17:57:07 · 7243 阅读 · 1 评论 -
NDK探究之旅《五》——指针和数组之间的关系
NDK探究之旅:NDK探究之旅《一》——对jni和NDK的认识NDK探究之旅《二》——C语言的基本认识NDK探究之旅《三》—C语言的输入输出函数NDK探究之旅《四》——指针的强化理解指针和数组之间的关系数组名就是数组第一位的地址。即数组名是元素的首地址。数组就是一块连续的内存空间,每个元素之间的距离和元素的类型有关数组名取地址得到的还是元素的首地址另一种方式的输出值arry[i] = *(ar原创 2017-05-11 23:13:13 · 1492 阅读 · 0 评论 -
Android触摸事件分发机制完全解析《一》
最近在做高德地图的时候,由于用户的要求,不得不用ScrollVew嵌套MapView,虽然很官方要求不建议这样做,但也迫于无奈… 魔高一尺,道高一丈.有什么事情事程序员不能解决的,如果有那就是解决两次.鉴于用到了触摸事件,于是就来总结了Android的触摸事件机制.首先当用户进行屏幕操作的时候,则有两种情况一是按键事件二是触摸事件按键事件分为长按和点击事件,过于简单,这里不再进行总结.触摸事件原创 2017-05-13 23:13:46 · 4029 阅读 · 3 评论 -
最近Android真的凉凉了?
都说Android最近行情不好,很多人都遇到瓶颈或放弃或转行。其实这种情况15年16年也是如此,相对比之下,个人认为今年比去年好多了,Android接下来将会走向复苏的春天。自从Google开始推出AMP项目已经有一年了。除此之外,最近,Google宣布将有一个单独的移动web搜索索引。这革命性一步完全改变了移动app开发趋势,特别是从SEO和web app的角度。加速移动页面AMP改变web ...原创 2018-11-27 10:19:11 · 2270 阅读 · 1 评论 -
学习React Native必看的几个开源项目
1.Facebook’s F8 Conference App 项目地址 https://github.com/fbsamples/f8app2.Reading来自饿了么RN大神开源的reading项目,已经完成Android和iOS双适配。绝对是一个产品级的开源项目,并且作者还在持续的更新。值得一荐! 项目地址: https://github....原创 2018-05-25 12:00:03 · 3779 阅读 · 0 评论 -
你真正了解UI线程更新的几种方式吗—面试必备之深度揭秘
你真正了解UI线程更新的几种方式吗——面试必备之UI刷新大解密我们都知道一般面试的时候都会问道Handler的运行机制。有些时候面试官不会直接问道。但是如果问道UI线程更新的方式有哪几种,你知道多少?今天我们用demo来探讨一下主线程中更新的几种方式通过简单的点击按钮来实现更新一张我女神的图片测试效果:首先我们要知道Handler的运行机制:这里不再做过多的讲解。请参考Handler消息机制完全解原创 2017-10-26 23:02:41 · 498 阅读 · 0 评论 -
一个强悍而优美的Android视频播放器
一行代码教你教你实现音视频播放器原创 2017-04-07 13:56:27 · 70625 阅读 · 24 评论 -
仿QQ空间之打造个性化可拉伸头部控件
最近有研究了QQ空间可拉伸头部控件的listView。如何去做呢?这里使用了自定义listView的方法。先看效果图吧:究竟如何去做呢? 可以用的方法有: * 1.继承 extends ViewGrop * 2.RecycleView +Behavior+CoordinateLayout * 3.ViewGroup 组合控件 * 4.ListView + headView这次我们主要原创 2017-02-26 22:25:09 · 1818 阅读 · 0 评论 -
MVP+Dagger2+Retrofit2.0+Rxjava看这一个例子就够了
MVP+Dagger2+Retrofit2.0+Rxjava的案例原创 2017-08-26 17:18:03 · 12161 阅读 · 3 评论 -
Android性能优化 (1)—— 内存溢出和内存泄漏的介绍
项目中的内存优化对于每一个程序员来说都是必须掌握的。大家对于app中的卡顿现象有过系统的了解过吗?接下来我们通过学习下面的文章,来对内存卡顿现象有一个深刻的了解。希望能帮助到大家。什么是卡顿我们可以先说说流畅性: 流畅我们定义为运行程序时达到60fps或以上的绘制效率,且尽可能少丢帧。 流畅和卡顿是建立在不同的标准上。如果强加议论,一定会变成毫无意义的口水战。在这里,卡顿我们定义为程序运行时无法原创 2017-04-16 20:54:21 · 2039 阅读 · 2 评论 -
这些优秀的音视频开源框架你值得收藏
音视频播放器第三方框架1.一个基于IJKplayer 的多功能视频播放器视频播放器(IJKplayer)的有点:HTTPS支持支持弹幕支持基本的拖动,声音、亮度调节支持边播边缓存支持视频本身自带rotation的旋转(90,270之类),重力旋转与手动旋转的同步支持支持列表播放,直接添加控件为封面,列表全屏动画,视频加载速度,列表小窗口支持拖动5.0的过场效果,调整比例,多分辨率切换原创 2017-04-02 22:32:37 · 39014 阅读 · 6 评论 -
你正真了解C语言中的指针吗
C语言的指针完全解析原创 2017-08-17 13:30:30 · 694 阅读 · 0 评论 -
“你还有什么事想问”——作为程序员如何回答面试官的问题
*“你还有什么事想问”——如何回答面试官的问题*最近找工作的人挺多的,要想从中众多的面试者中脱颖而出,你就要具有比别人更独特的魅力。如果是参加面试,光是回答问题远远是不够的。要想脱颖而出,不但要会回答问题,还要会出题。很多人在回答问题时表现可圈可点,看起来十拿九稳,却在轮到自己提问题时中枪倒地,输掉全盘。原因很简单,多半是没有料想到面试官有这么一招,事前未做充分准备,于是出现两种状况,一种是放弃提问原创 2017-04-15 23:50:46 · 25762 阅读 · 4 评论 -
app冷启动缓慢出现白屏之终极解决方案—IntentService高效异步处理
什么叫做冷启动第一次启动或者被用户主动杀死app进程,或者被系统主动回收掉,整个app的后台任务被清理,回到桌面再次点击app的桌面图标启动app。*特点*后台任务全部结束,再次启动当然还有与之对应的热启动*热启动*用户点击返回键退推到桌面上,后台任务没有被杀死。再次点击桌面图标启动app*特点*未清理后台任务,再次启动app启动时,每一个app都会至少创建一个进程出来,一些启动多线程任务的会创建出原创 2017-05-05 18:16:45 · 3915 阅读 · 3 评论 -
关于NDK和jni你究竟了解多少?
http://blog.csdn.net/banketree/article/details/12167145首先我们要知道Java是如何调用c/c++的什么是JNIjava native interface(java本地接口) ABI: application binary interface (应用程序二进制接口)简介JNI是Java语言提供的Java和C/C++相互沟通的机制,Java可以通原创 2017-03-08 22:54:36 · 3030 阅读 · 0 评论 -
深入了解Android蓝牙Bluetooth ——《总结篇》
在我的上两篇博文中讲解了有关android蓝牙的认识以及API的相关的介绍,蓝牙BLE的搜索,连接以及读取。 没有了解的童鞋们请参考: * 深入了解Android蓝牙Bluetooth——《基础篇》深入了解Android蓝牙Bluetooth——《进阶篇》目前项目中的效果图:接下来我们就对蓝牙BLE4.0进行一下总结。蓝牙APIAndroid ble 蓝牙4.0,也就是说API level原创 2017-03-07 22:35:24 · 15890 阅读 · 4 评论 -
深入了解Android蓝牙Bluetooth——《进阶篇》
在 深入了解Android蓝牙Bluetooth——《基础篇》一篇中我们对蓝牙的各个版本的有了一个认识,蓝牙版本的历程及其优劣式介绍。那么接下来咱们就深入一点继续开车进入BLE的进及篇章。蓝牙BLE4.xBLE分为三部分:ServiceCharacteristicDescriptor这三部分都用UUID作为唯一标识符。UUID为这种格式:0000ffe1-0000-1000-8000-0080原创 2017-03-06 20:49:08 · 10592 阅读 · 2 评论 -
深入了解Android蓝牙Bluetooth——《基础篇》
什么是蓝牙? 也可以说是蓝牙技术。所谓蓝牙(Bluetooth)技术,实际上是一种短距离无线电技术,是由爱立信公司公司发明的。利用“蓝牙”技术,能够有效地简化掌上电脑、笔记本电脑和移动电话手机等移动通信终端设备之间的通信,也能够成功地简化以上这些设备与因特网Internet之间的通信,从而使这些现代通信设备与因特网之间的数据传输变得更加迅速高效,为无线通信拓宽道路。蓝牙版本的介绍 蓝牙发展至今经原创 2017-03-05 16:24:17 · 30220 阅读 · 4 评论 -
NDK探究之旅《三》—C语言的输入输出函数
NDK探究之旅:NDK探究之旅《一》——对jni和NDK的认识NDK探究之旅《二》——C语言的基本认识有关于java的输入输出函数:C语言的输出函数:我们先来看一下printf函数printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。printf()函数的调用格式为: printf(“<格式化字符串>”, <参量表>)。格式输出,它是c语言中产生格式化输出的函数(在原创 2017-05-09 13:24:42 · 1307 阅读 · 0 评论 -
Android BigDecime的巧妙用法
BigDecimal简介Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal。BigDecimal所创建的是对象,我们不能使用传原创 2017-01-20 13:06:34 · 1698 阅读 · 0 评论 -
GitHub教程及其相关命令总结
版本控制工具:1,GIT是分布式版本控制系统1、commmit 本地2、push 远端一,注册Git注册教程二,删除仓库1、选中要删除的仓库,点击右上角的按钮中的setting,输入仓库名称,删除三,创建仓库1,输入仓库名称2,是否在仓库中添加一个readme文档四,克隆代码1,使用SSH协议,SSH和HTTPS(传输加密协议,每次都要输入用户名和密码)2,将地址复制,进入你要原创 2017-02-09 22:50:48 · 636 阅读 · 0 评论 -
教你如何正确的去校验身份证
//判断身份证的参考标准:要么是15位,要么是18位,最后一位可以为字母,并写程序提出其中的年月日。 身份证的构成:身份证号码验证1、号码的结构 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码, 八位数字出生日期码,三位数字顺序码和一位数字校验码。2、地址码(前六位数) 表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T22原创 2017-02-17 10:29:03 · 8131 阅读 · 0 评论 -
Android LayoutInflater原理分析,带你一步步深入了解View(一)
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/12921889有段时间没写博客了,感觉都有些生疏了呢。最近繁忙的工作终于告一段落,又有时间写文章了,接下来还会继续坚持每一周篇的节奏。有不少朋友跟我反应,都希望我可以写一篇关于View的文章,讲一讲View的工作原理以及自定义View的方法。没错,承诺过的文章我是一定要兑现的转载 2015-04-07 13:33:39 · 872 阅读 · 0 评论 -
Android Application对象必须掌握的七点
1:Application是什么?Application和Activity,Service一样,是android框架的一个系统组件,当android程序启动时系统会创建一个 application对象,用来存储系统的一些信息。通常我们是不需要指定一个Application的,这时系统会自动帮我们创建,如果需要创建自己 的Application,也很简单创建一个类继承 App转载 2015-03-18 15:03:43 · 4280 阅读 · 1 评论 -
Android ScrollView去掉滚动条及ScrollView属性
接下来总结一下Scrollbar的各种属性吧,只有自己总结的,东西才是自己的。android 滚动条 相关属性我们常用到的就是如何去除滚动条: android:scrollbars="none “:属性名称描述android:background设置背景色/背景图片。可以通过以下两种方法设置背景为透明:”@原创 2015-03-23 15:29:00 · 30613 阅读 · 3 评论