- 博客(140)
- 资源 (3)
- 收藏
- 关注
原创 Android产品研发系列
本个系列的文章主要是讲解android产品研发过程中一些需要注意的技术技巧与实践。其主要面对产品研发,对App稳定性,友好型,兼容性要求较高的App
2016-06-12 19:51:13 13305 14
原创 Github项目解析系列
Github项目解析系列主要解析的是平时开发过程中遇到的小项目小例子,自己总结的一些研发技巧与实践,以及一些Github中流行的项目等
2016-03-23 20:42:40 4212 2
原创 Android tips知识点系列
Android tips系列主要是一些android中小问题,小知识点的总结与归纳,下面是这些tips的文章列表,不定时更新ing...
2016-03-20 17:27:46 4431
原创 Android源码解析系列
知乎上看了一篇非常不错的博文:<a href="http://zhuanlan.zhihu.com/kaede/20563936">有没有必要阅读ANDROID源码</a>看完之后痛定思过,平时所学往往是知其然然不知其所以然,所以为了更好的深入android体系,决定学习android framework层源码。这篇文章就是源码学习的汇总篇,包含学习源码的流程,文章列表等等,会根据学习的进度不定时更新。
2016-02-19 10:33:42 33106 8
转载 太用力的人跑不远
写在前面:有阶段的自己,会用蛮力去学习一些东西,就是这东西不管是否适合目前自己的知识体系, 觉得学了之后会更牛逼就去学,但是这样的东西往往学了记不住。 学习的过程越用力反而显得越吃力, 太吃力的事情,自然就无法有恒心, 这就是很多人会觉得自己做事总是无法持之以恒的原因。努力不应该是某种需要被时常觉知的东西,意志力是短期内会用完的精神能量。真正坚持到最后的人靠的不是激情,而是恰到好处的喜欢和投入。
2015-08-04 11:14:59 5119 9
原创 Android标准的选择图片操作
打开相机一般来说有两种方式,一种是自己初始化相机,调用Camera组件,相对来说这种比较复杂,需要做的工作也比较多,还有一种是调用相机的隐式Intent打开相机,打开相机选择图片这种需求其实调用隐式Intent就可以了,没必要自己初始化camera对象...
2016-11-08 20:02:36 3195 1
原创 Kotlin(一)-->Android Studio配置Kotlin开发环境
新的产品开发中Android端已经完全使用Kotlin作为开发语言了,目前为止还没有发现什么不适的地方。所以今天我们将讲解一下如何在Android Studio中配置Kotlin开发环境,算是为Kotlin讲解一下入门知识,后续会慢慢更新kotlin相关知识...
2016-10-27 09:44:27 41646 11
原创 Github项目解析(十四)-->快速实现自定义地图聚合操作
本文我将讲解一下我最近实现的高德地图Marker的聚合功能。在项目开发中需要使用到地图Marker的聚合功能,但是高德地图并没有实现对Marker的聚合功能,所以需要自己实现其聚合功能...
2016-10-21 09:02:57 10548 7
原创 Android tips(十四)-->解决AppBarLayout滑动不畅的问题
最近在开发的App中需要实现Toolbar与顶部内容区域级联滚动的效果,一开始就想到了Android 5.0 中新添加的AppBarLayout控件,其正好是实现这个效果的,所以马上就使用这个组件实现了一个类似的效果,但是实现过程中发现AppBarLayout滑动时不流畅...
2016-10-17 18:39:47 20257 7
原创 Android产品研发(二十五)-->MVC/MVVM/MVP简单理解
本文我们将讲解Android开发中常常涉及到的MVC/MVP/MVVM等模式的基本概念。许多童鞋对Android开发中涉及到的MVC、MVP、MVVM这三种模式不是太清楚,我认为无论是MVC、MVP亦或者是MVVM都是一种代码组织方式,通过这种代码组织方式能够让代码更有层次感,各个层次主要负责各自的工作,这样降低了整个项目的代码逻辑耦合度与可读性
2016-10-15 16:02:02 4389 1
原创 Android tips(十三)-->Android开发过程中使用Lambda表达式
新的Java8 API中提供了不少新的特性,其中就有Lambda表达式。而本文我们将主要介绍一下在Android开发过程中如何使用Lambda表达式,这里主要是为我们后续介绍RxAndroid、RxJava相关知识做铺垫的...
2016-10-08 09:11:50 2829
原创 Android tips(十二)-->Android开发中使用矢量图
本文我们将介绍一些关于Android矢量图的相关知识点。最新的项目中要求以矢量图替代传统的.png资源文件,所以特意学习了一下Android中的矢量图相关概念,不得不说矢量图还是一个比较好的适配方案。Android从Android5.0开始引入了对矢量图的支持,但是其并不支持svg这种矢量图片格式,,而是以VectorDrawable的方式来实现矢量图的效果...
2016-10-02 09:40:32 6690 4
原创 Android产品研发(二十四)-->内存泄露场景与检测
本文我们将讲解一下关于Android开发过程中常见的内存泄露场景与检测方案。Android系统为每个应用程序分配的内存是有限的,当一个应用中产生的内存泄漏的情况比较多时,这就会导致应用所需要的内存超过这个系统分配的内存限额,进而造成了内存溢出而导致应用崩溃。在实际的开发过程中我们由于对程序代码的不当操作随时都有可能造成内存泄露...
2016-09-29 09:19:27 5210 2
原创 Github项目解析(十三)-->使用Kotlin实现UC头条ViewPager左右滑动效果
本文我们将介绍一个使用kotlin实现的仿照UC头条ViewPager的左右滑动效果。这个项目是为了学习kotlin的使用以及基本语法,在实现的过程中主要需要注意的有两点:一个是UC头条在滑动过程中的遮盖动画效果,一个是跨多个Tab点击屏蔽多个页面滑动效果
2016-09-26 09:18:45 3785 7
原创 Android tips(十一)-->android开发者需要了解的chrome插件
本文主要是总结了android开发者常用的一些chrome插件,相信有了这些插件的话你的开发效率会大大的提升
2016-09-22 11:06:35 2941
原创 Github项目解析(十二)-->一个简单的多行文本显示控件
本文我们将讲解一个使用的多行文本显示控件,在实际开发过程中我们时常会遇到这种需求:有两个TextView控件分行显示,当第一个TextView的内容过多一行显示不下时,我们需要将第二个TextView在第一个TextView的第二行末尾显示,当第二个TextView第二行也显示不下时,第一个TextView的第二行结尾以“...”结束,第二个TextView显示在第二行的最后段,而本文介绍的就是一个实现这种需求的自定
2016-09-20 19:10:48 4482 1
原创 Github项目解析(十一)-->一个简单,强大的自定义广告活动弹窗
本文我们将讲解一个简单,强大的广告活动弹窗控件。不少App在打开的时候需要弹出一个广告活动弹窗,点击广告活动弹窗中的图片就会跳转到一个H5页面,加载显示具体的活动内容等,为了方便大家的操作,我将其做成了一个标准控件:android-adDialog。需要说明的是,虽然其名称为android-adDialog,并且表现形式也和Dialog类似,但是这里并不是通过Dialog实现的,而是自定义的View
2016-08-07 22:31:15 11796 44
原创 Android tips(十)-->允许模拟位置在Android M下的坑
本文我们将讲解允许模拟位置在Android M下的坑。做地图类应用的同学应该都知道为了避免软件模拟位置影响正常流程的进行我们一般都会判断用户手机是否打开了模拟位置设置,若打开了则终止用户流程,提醒用户关闭模拟位置设置。在android系统的开发者选项中有一个模拟位置的选项,其作用是允许用户通过代码模拟设备的当前位置...
2016-08-02 22:26:15 27323 3
原创 Android tips(九)-->Android录屏与转化gif图
今天正好就讲讲android的录屏与转化gif操作。整个Android系统的录制与转化GIF图是分为两个部分,录制过程与转化过程,下面就详细的介绍一下这两个部分的具体过程
2016-07-31 18:13:10 6091 4
原创 Github项目解析(十)-->几行代码快速集成二维码扫描库
本文将讲解一下我最近写的一个快速集成二维码扫描库,这里需要说明的是其核心的实现扫描的功能,是通过调用ZXing库实现的。内部App中使用到了二维码扫描功能,但是网上找了一些关于二维码扫描的例子,只是我在集成的时候发现通过android studio集成zxing二维码库不是特别方便,由于我就有了将其制作成标准库的想法,也就有了本文即快速集成二维码扫描库。
2016-07-27 18:07:56 54384 237
原创 Android tips(八)-->Android Studio打包apk,aar,jar包
文本我们将讲解android studio打包apk,aar,jar包的相关知识。apk包就是android系统的安装包,这里没什么好说的,aar包是android中独有的类库包,而jar包是java中特有的类库包,在具体的介绍打包之前,我们先来aar包和jar包的区别
2016-07-24 19:53:55 32666 13
原创 Android产品研发(二十三)-->Android中保存静态秘钥实践
本文我们将讲解一个android产品研发中可能会碰到的一个问题:如何在App中保存静态秘钥以及保证其安全性。许多的移动app需要在app端保存一些静态字符串常量,其可能是静态秘钥、第三方appId等。在保存这些字符串常量的时候就涉及到了如何保证秘钥的安全性问题。如何保证在App中静态秘钥唯一且正确安全,这是一个很重要的问题,公司的产品中就存在着静态字符串常量类型的秘钥,所以一个明显的问题就是如何生成秘钥,保证秘钥的安
2016-07-21 22:37:44 12951 8
原创 Android产品研发(二十二)-->Android实用调试技巧
本文我们将讲解android中的调试技巧。程序调试,是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。这是保证计算机信息系统正确性的必不可少的步骤。在android开发过程中熟练的使用调试技巧是一个很重要的方面。android的调试技巧包括熟练使用android中的日志API,自定义android日志框架,通过gradle配置调试日志,android studio的调试技巧等
2016-07-18 22:55:19 7802 2
原创 Android产品研发(二十一)-->Android中的UI优化
本文我们将讲解一下android UI优化方面的知识。android系统的优化分为好多方面:比如性能优化,UI优化,资源文件优化等等,这里我们先暂时讲解android UI优化方面的知识点
2016-07-16 21:54:02 9361 2
原创 Android产品研发(二十)-->代码Review
本文我们将讲解android中的代码Review。良好的产品开发迭代过程中,代码Review是一个必不可少的步骤,通过代码Review能够提高产品质量,增强团队成员之间的沟通,提高开发效率。所以团队开发活动中定时进行代码Review就显得很有必要了
2016-07-14 21:14:33 12077 2
原创 Android产品研发(十九)-->Android studio中的单元测试
本文我们将讲解如何在android studio中进行单元测试,其可以很方便的为我们提供功能性测试,所以如果项目中有用到测试数据的时候,可以先进行单元测试,如果可以正常输出数据了,然后再到UI中执行,这样会提高一些工作效率
2016-07-11 21:42:37 19480 7
原创 Github项目解析(九)-->实现Activity跳转动画的五种方式
文本中我们将讲解activity切换动画相关的知识点,这里的切换动画指的是是activity跳转时的动画效果。这里总结了一下,有五种方式实现activity切换时实现动画效果。下面我将依次介绍一下每种实现activity切换动画效果的实现方式
2016-07-08 23:15:36 54763 18
原创 Android产品研发(十八)-->webview问题集锦
本文中我们将介绍一下android中webview在使用过程中会遇到的一些问题。这些问题主要是webview在使用过程中我已经趟过的坑,希望通过这篇文章的介绍能够帮助大家更好的使用webview
2016-07-06 21:26:57 8431 2
原创 Android产品研发(十七)-->Hybrid开发
本文将介绍android中hybrid开发相关的知识点。hybrid开发实际上是混合开发的意思,这里的混合是H5开发与Native开发混合的意思。下面的文章中我们将逐个介绍一下hybrid开发的概念、hybrid开发的优势、android中如何实现hybrid开发、简单的hybrid开发的例子,以及在产品实践中对hybrid开发的应用,希望通过本篇文章的介绍让您能够对android中的hybrid开发有一个基本的认识
2016-07-04 21:47:27 20762 6
原创 Android产品研发(十六)-->开发者选项
本文主要介绍Android开发中常常涉及到但又不是被人重视知识点:开发者选项。主要涉及到如何打开开发者模式,开发者选项中有哪些操作菜单以及各自的作用,如何清除手机数据,清除手机数据具体清除那些数据等等
2016-07-02 21:35:12 16547 3
原创 Android产品研发(十五)-->内存对象序列化
本文将讲解android中数据传输中需要了解的数据序列化方面的知识,我们知道android开发过程中不同Activity之间传输数据可以通过Intent对象的put**方法传递,对于java的八大基本数据类型(char int float double long short boolean byte)传递是没有问题的,但是如果传递比较复杂的对象类型(比如对象,比如集合等),那么就可能存在问题,而这时候也就引入了数据序
2016-06-30 22:32:21 10352 3
原创 Android产品研发(十四)-->App升级与更新
本文将讲解app的升级与更新。一般而言用户使用App的时候升级提醒有两种方式获得:- 一种是通过App Store获取- 一种是打开应用之后提醒用户更新升级而更新操作一般是在用户点击了升级按钮之后开始执行的,这里的升级操作也分为两种形式:- 一般升级- 强制升级
2016-06-28 21:58:01 31783 11
原创 Github项目解析(八)-->Activity启动过程中获取组件宽高的五种方式
本文中我将介绍一下android中Activity启动时获取组件宽高的N种方式。我们知道,有时候我们需要在Activity启动的时候获取某一组件的宽或者是高用于动态的更改UI布局文件,但是这时候我们直接通过getWidth和getHeight方法获取是有问题的。
2016-06-26 21:53:37 7739 10
原创 Github项目解析(七)-->防止按钮重复点击
本文中我们介绍我自己封装的一个小的工具类库:按钮点击事件类库,该类库可以防止按钮重复点击,可以判断网络状态,可以判断用户登录状态,以及自定义验证条件等等。其实现的核心原理就是通过自定义实现自身的OnClickListener类,并重写其中的onClick方法,在onClick方法中执行相应的判断逻辑之后回调我们自定义的抽象方法,具体如下图:
2016-06-23 21:57:38 12344 10
原创 Android产品研发(十三)-->App轮询操作
本文将讲解app端的轮训请求服务,一般而言我们经常将轮训操作用于请求服务器。比如某一个页面我们有定时任务需要时时的从服务器获取更新信息并显示,比如当长连接断掉之后我们可能需要启动轮训请求作为长连接的补充等,所以这时候就用到了轮训服务
2016-06-21 22:00:46 27256 13
原创 Github项目解析(六)-->自定义实现ButterKnife框架
目前在 <a href="http://www.uucars.com/">友友用车</a> 项目中使用到了ButterKnife框架,这是一个通过注解的方式简化程序员代码量,自动映射xml布局文件与对象关系的框架。
2016-06-20 10:58:18 8509 5
原创 Github项目解析(五)-->Android日志框架
转载请标明出处:一片枫叶的专栏本文主要讲解的是自己实现一个简单的android日志框架,可以在android studio控制台中输入日志信息,其简单的使用方式:L.v("...");L.d("...");L.i("...");L.w("...");L.d("...");其中v、d、i、w、d分别代表着不同的日志级别,和android原生的Log日志级别是相同的。(一)相关说明 为了熟悉
2016-06-18 23:39:15 13295 16
原创 Android产品研发(十二)-->App长连接实现
本文中我们将讲解一下App的长连接实现。一般而言长连接已经是App的标配了,推送功能的实现基础就是长连接,当然了我们也可以通过轮训操作实现推送功能,但是轮训一般及时性比较差,而且网络消耗与电量销毁比较多,因此一般推送功能都是通过长连接实现的
2016-06-17 18:47:58 52836 33
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人