一片枫叶的专栏

让坚持成为一种习惯。

排序:
默认
按更新时间
按访问量

Android产品研发系列

本个系列的文章主要是讲解android产品研发过程中一些需要注意的技术技巧与实践。其主要面对产品研发,对App稳定性,友好型,兼容性要求较高的App

2016-06-12 19:51:13

阅读数:10143

评论数:15

Github项目解析系列

Github项目解析系列主要解析的是平时开发过程中遇到的小项目小例子,自己总结的一些研发技巧与实践,以及一些Github中流行的项目等

2016-03-23 20:42:40

阅读数:2807

评论数:2

Android tips知识点系列

Android tips系列主要是一些android中小问题,小知识点的总结与归纳,下面是这些tips的文章列表,不定时更新ing...

2016-03-20 17:27:46

阅读数:3295

评论数:0

Android源码解析系列

知乎上看了一篇非常不错的博文:<a href="http://zhuanlan.zhihu.com/kaede/20563936">有没有必要阅读ANDROID源码</a> 看完之后痛定思过,平时所学往往是知其然然不知其所以然,所以为了更好的深入andr...

2016-02-19 10:33:42

阅读数:21916

评论数:5

太用力的人跑不远

写在前面:有阶段的自己,会用蛮力去学习一些东西,就是这东西不管是否适合目前自己的知识体系, 觉得学了之后会更牛逼就去学,但是这样的东西往往学了记不住。 学习的过程越用力反而显得越吃力, 太吃力的事情,自然就无法有恒心, 这就是很多人会觉得自己做事总是无法持之以恒的原因。努力不应该是某种需要被时常觉...

2015-08-04 11:14:59

阅读数:3961

评论数:8

Android标准的选择图片操作

打开相机一般来说有两种方式,一种是自己初始化相机,调用Camera组件,相对来说这种比较复杂,需要做的工作也比较多,还有一种是调用相机的隐式Intent打开相机,打开相机选择图片这种需求其实调用隐式Intent就可以了,没必要自己初始化camera对象...

2016-11-08 20:02:36

阅读数:1951

评论数:1

Kotlin(二)-->基础语法

关于kotlin的基础语法相关知识点...

2016-11-04 10:14:11

阅读数:4592

评论数:0

Kotlin(一)-->Android Studio配置Kotlin开发环境

新的产品开发中Android端已经完全使用Kotlin作为开发语言了,目前为止还没有发现什么不适的地方。所以今天我们将讲解一下如何在Android Studio中配置Kotlin开发环境,算是为Kotlin讲解一下入门知识,后续会慢慢更新kotlin相关知识...

2016-10-27 09:44:27

阅读数:29946

评论数:11

Github项目解析(十四)-->快速实现自定义地图聚合操作

本文我将讲解一下我最近实现的高德地图Marker的聚合功能。在项目开发中需要使用到地图Marker的聚合功能,但是高德地图并没有实现对Marker的聚合功能,所以需要自己实现其聚合功能...

2016-10-21 09:02:57

阅读数:6108

评论数:5

Android tips(十四)-->解决AppBarLayout滑动不畅的问题

最近在开发的App中需要实现Toolbar与顶部内容区域级联滚动的效果,一开始就想到了Android 5.0 中新添加的AppBarLayout控件,其正好是实现这个效果的,所以马上就使用这个组件实现了一个类似的效果,但是实现过程中发现AppBarLayout滑动时不流畅...

2016-10-17 18:39:47

阅读数:12520

评论数:7

Android产品研发(二十五)-->MVC/MVVM/MVP简单理解

本文我们将讲解Android开发中常常涉及到的MVC/MVP/MVVM等模式的基本概念。许多童鞋对Android开发中涉及到的MVC、MVP、MVVM这三种模式不是太清楚,我认为无论是MVC、MVP亦或者是MVVM都是一种代码组织方式,通过这种代码组织方式能够让代码更有层次感,各个层次主要负责各自...

2016-10-15 16:02:02

阅读数:2794

评论数:1

Android tips(十三)-->Android开发过程中使用Lambda表达式

新的Java8 API中提供了不少新的特性,其中就有Lambda表达式。而本文我们将主要介绍一下在Android开发过程中如何使用Lambda表达式,这里主要是为我们后续介绍RxAndroid、RxJava相关知识做铺垫的...

2016-10-08 09:11:50

阅读数:1850

评论数:0

Android tips(十二)-->Android开发中使用矢量图

本文我们将介绍一些关于Android矢量图的相关知识点。最新的项目中要求以矢量图替代传统的.png资源文件,所以特意学习了一下Android中的矢量图相关概念,不得不说矢量图还是一个比较好的适配方案。Android从Android5.0开始引入了对矢量图的支持,但是其并不支持svg这种矢量图片格式...

2016-10-02 09:40:32

阅读数:4340

评论数:3

Android产品研发(二十四)-->内存泄露场景与检测

本文我们将讲解一下关于Android开发过程中常见的内存泄露场景与检测方案。Android系统为每个应用程序分配的内存是有限的,当一个应用中产生的内存泄漏的情况比较多时,这就会导致应用所需要的内存超过这个系统分配的内存限额,进而造成了内存溢出而导致应用崩溃。在实际的开发过程中我们由于对程序代码的不...

2016-09-29 09:19:27

阅读数:3987

评论数:2

Github项目解析(十三)-->使用Kotlin实现UC头条ViewPager左右滑动效果

本文我们将介绍一个使用kotlin实现的仿照UC头条ViewPager的左右滑动效果。这个项目是为了学习kotlin的使用以及基本语法,在实现的过程中主要需要注意的有两点:一个是UC头条在滑动过程中的遮盖动画效果,一个是跨多个Tab点击屏蔽多个页面滑动效果

2016-09-26 09:18:45

阅读数:2798

评论数:7

Android tips(十一)-->android开发者需要了解的chrome插件

本文主要是总结了android开发者常用的一些chrome插件,相信有了这些插件的话你的开发效率会大大的提升

2016-09-22 11:06:35

阅读数:2121

评论数:0

Github项目解析(十二)-->一个简单的多行文本显示控件

本文我们将讲解一个使用的多行文本显示控件,在实际开发过程中我们时常会遇到这种需求:有两个TextView控件分行显示,当第一个TextView的内容过多一行显示不下时,我们需要将第二个TextView在第一个TextView的第二行末尾显示,当第二个TextView第二行也显示不下时,第一个Tex...

2016-09-20 19:10:48

阅读数:3079

评论数:1

近期参加的各大公司面试总结

最近一段时间一直在找工作,所以参加了不少公司的面试,下面是各个公司的面试总结...

2016-09-11 22:22:05

阅读数:4405

评论数:2

Github项目解析(十一)-->一个简单,强大的自定义广告活动弹窗

本文我们将讲解一个简单,强大的广告活动弹窗控件。不少App在打开的时候需要弹出一个广告活动弹窗,点击广告活动弹窗中的图片就会跳转到一个H5页面,加载显示具体的活动内容等,为了方便大家的操作,我将其做成了一个标准控件:android-adDialog。需要说明的是,虽然其名称为android-adD...

2016-08-07 22:31:15

阅读数:6999

评论数:40

Android tips(十)-->允许模拟位置在Android M下的坑

本文我们将讲解允许模拟位置在Android M下的坑。做地图类应用的同学应该都知道为了避免软件模拟位置影响正常流程的进行我们一般都会判断用户手机是否打开了模拟位置设置,若打开了则终止用户流程,提醒用户关闭模拟位置设置。在android系统的开发者选项中有一个模拟位置的选项,其作用是允许用户通过代码...

2016-08-02 22:26:15

阅读数:14158

评论数:2

Android tips(九)-->Android录屏与转化gif图

今天正好就讲讲android的录屏与转化gif操作。整个Android系统的录制与转化GIF图是分为两个部分,录制过程与转化过程,下面就详细的介绍一下这两个部分的具体过程

2016-07-31 18:13:10

阅读数:4577

评论数:4

Github项目解析(十)-->几行代码快速集成二维码扫描库

本文将讲解一下我最近写的一个快速集成二维码扫描库,这里需要说明的是其核心的实现扫描的功能,是通过调用ZXing库实现的。内部App中使用到了二维码扫描功能,但是网上找了一些关于二维码扫描的例子,只是我在集成的时候发现通过android studio集成zxing二维码库不是特别方便,由于我就有了将...

2016-07-27 18:07:56

阅读数:30054

评论数:220

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

阅读数:23871

评论数:13

Android产品研发(二十三)-->Android中保存静态秘钥实践

本文我们将讲解一个android产品研发中可能会碰到的一个问题:如何在App中保存静态秘钥以及保证其安全性。许多的移动app需要在app端保存一些静态字符串常量,其可能是静态秘钥、第三方appId等。在保存这些字符串常量的时候就涉及到了如何保证秘钥的安全性问题。如何保证在App中静态秘钥唯一且正确...

2016-07-21 22:37:44

阅读数:8045

评论数:7

Android产品研发(二十二)-->Android实用调试技巧

本文我们将讲解android中的调试技巧。程序调试,是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。这是保证计算机信息系统正确性的必不可少的步骤。在android开发过程中熟练的使用调试技巧是一个很重要的方面。android的调试技巧包括熟练使用andr...

2016-07-18 22:55:19

阅读数:6374

评论数:2

Android产品研发(二十一)-->Android中的UI优化

本文我们将讲解一下android UI优化方面的知识。android系统的优化分为好多方面:比如性能优化,UI优化,资源文件优化等等,这里我们先暂时讲解android UI优化方面的知识点

2016-07-16 21:54:02

阅读数:7915

评论数:2

Android产品研发(二十)-->代码Review

本文我们将讲解android中的代码Review。良好的产品开发迭代过程中,代码Review是一个必不可少的步骤,通过代码Review能够提高产品质量,增强团队成员之间的沟通,提高开发效率。所以团队开发活动中定时进行代码Review就显得很有必要了

2016-07-14 21:14:33

阅读数:7168

评论数:1

Android产品研发(十九)-->Android studio中的单元测试

本文我们将讲解如何在android studio中进行单元测试,其可以很方便的为我们提供功能性测试,所以如果项目中有用到测试数据的时候,可以先进行单元测试,如果可以正常输出数据了,然后再到UI中执行,这样会提高一些工作效率

2016-07-11 21:42:37

阅读数:14729

评论数:8

Github项目解析(九)-->实现Activity跳转动画的五种方式

文本中我们将讲解activity切换动画相关的知识点,这里的切换动画指的是是activity跳转时的动画效果。这里总结了一下,有五种方式实现activity切换时实现动画效果。下面我将依次介绍一下每种实现activity切换动画效果的实现方式

2016-07-08 23:15:36

阅读数:42231

评论数:16

Android产品研发(十八)-->webview问题集锦

本文中我们将介绍一下android中webview在使用过程中会遇到的一些问题。这些问题主要是webview在使用过程中我已经趟过的坑,希望通过这篇文章的介绍能够帮助大家更好的使用webview

2016-07-06 21:26:57

阅读数:6872

评论数:2

Android产品研发(十七)-->Hybrid开发

本文将介绍android中hybrid开发相关的知识点。hybrid开发实际上是混合开发的意思,这里的混合是H5开发与Native开发混合的意思。下面的文章中我们将逐个介绍一下hybrid开发的概念、hybrid开发的优势、android中如何实现hybrid开发、简单的hybrid开发的例子,以...

2016-07-04 21:47:27

阅读数:14838

评论数:6

Android产品研发(十六)-->开发者选项

本文主要介绍Android开发中常常涉及到但又不是被人重视知识点:开发者选项。主要涉及到如何打开开发者模式,开发者选项中有哪些操作菜单以及各自的作用,如何清除手机数据,清除手机数据具体清除那些数据等等

2016-07-02 21:35:12

阅读数:13574

评论数:3

Android产品研发(十五)-->内存对象序列化

本文将讲解android中数据传输中需要了解的数据序列化方面的知识,我们知道android开发过程中不同Activity之间传输数据可以通过Intent对象的put**方法传递,对于java的八大基本数据类型(char int float double long short boolean byt...

2016-06-30 22:32:21

阅读数:9300

评论数:3

Android产品研发(十四)-->App升级与更新

本文将讲解app的升级与更新。一般而言用户使用App的时候升级提醒有两种方式获得: - 一种是通过App Store获取 - 一种是打开应用之后提醒用户更新升级 而更新操作一般是在用户点击了升级按钮之后开始执行的,这里的升级操作也分为两种形式: - 一般升级 - 强制升级

2016-06-28 21:58:01

阅读数:23207

评论数:11

Github项目解析(八)-->Activity启动过程中获取组件宽高的五种方式

本文中我将介绍一下android中Activity启动时获取组件宽高的N种方式。我们知道,有时候我们需要在Activity启动的时候获取某一组件的宽或者是高用于动态的更改UI布局文件,但是这时候我们直接通过getWidth和getHeight方法获取是有问题的。

2016-06-26 21:53:37

阅读数:6257

评论数:10

Github项目解析(七)-->防止按钮重复点击

本文中我们介绍我自己封装的一个小的工具类库:按钮点击事件类库,该类库可以防止按钮重复点击,可以判断网络状态,可以判断用户登录状态,以及自定义验证条件等等。其实现的核心原理就是通过自定义实现自身的OnClickListener类,并重写其中的onClick方法,在onClick方法中执行相应的判断逻...

2016-06-23 21:57:38

阅读数:10052

评论数:8

Android产品研发(十三)-->App轮询操作

本文将讲解app端的轮训请求服务,一般而言我们经常将轮训操作用于请求服务器。比如某一个页面我们有定时任务需要时时的从服务器获取更新信息并显示,比如当长连接断掉之后我们可能需要启动轮训请求作为长连接的补充等,所以这时候就用到了轮训服务

2016-06-21 22:00:46

阅读数:18909

评论数:13

Github项目解析(六)-->自定义实现ButterKnife框架

目前在&nbsp;&nbsp;<a href="http://www.uucars.com/">友友用车</a>&nbsp;&nbsp;项目中使用到了ButterKnife框架,这是一个通过注解的方式简化程序员代码量,自动...

2016-06-20 10:58:18

阅读数:7270

评论数:5

Github项目解析(五)-->Android日志框架

转载请标明出处:一片枫叶的专栏 本文主要讲解的是自己实现一个简单的android日志框架,可以在android studio控制台中输入日志信息,其简单的使用方式:L.v("..."); L.d("..."); L.i("..."); L...

2016-06-18 23:39:15

阅读数:10628

评论数:16

Android产品研发(十二)-->App长连接实现

本文中我们将讲解一下App的长连接实现。一般而言长连接已经是App的标配了,推送功能的实现基础就是长连接,当然了我们也可以通过轮训操作实现推送功能,但是轮训一般及时性比较差,而且网络消耗与电量销毁比较多,因此一般推送功能都是通过长连接实现的

2016-06-17 18:47:58

阅读数:40493

评论数:32

Android产品研发(十一)-->应用内跳转Scheme协议

这里的scheme是一种页面内跳转协议,主要用于支持一下几种场景: - 服务器下发跳转路径,客户端根据服务器下发跳转路径跳转相应的页面; - H5页面点击锚点,根据锚点具体跳转路径App端跳转具体的页面; - App端收到服务器端下发的PUSH通知栏消息,根据消息的点击跳转路径跳转相关页面

2016-06-15 23:02:30

阅读数:28188

评论数:8

Android产品研发(十)-->尽量不使用静态变量保存数据

转载请标明出处:一片枫叶的专栏 上一篇文章中我们讲解了Android中的几种常见网络协议:xml,json,protobuf等,以及各自的优缺点,一般而言主要我们的App涉及到了网络传输都会有这方面的内容,具体可根据项目的需求确定各自的网络传输协议。 而本文讲解的其实并不是一个技术方面,而是...

2016-06-13 18:34:37

阅读数:13283

评论数:17

Android产品研发(九)-->App网络传输协议

转载请标明出处:一片枫叶的专栏 上一篇文章中我们讲解了App的数据统计,其主要分为两种:使用第三方服务统计和自身实现数据统计。一般而言我们使用第三方统计服务已经可以很好的满足我们的也无需求了,只是部分数据敏感性App,可能自身实现数据统计服务是一个更好的选择。 而本文中将要介绍的是App端的...

2016-06-08 20:02:29

阅读数:15498

评论数:5

Android产品研发(八)-->App数据统计

上一篇文章中我们介绍了android社区中很火的热修复功能,主流的热修复原理上其实分为两种,一种是通过利用dex的加载顺序实现热修复功能,一种是通过native层实现指针替换实现热修复功能,两种各有利弊可以根据自身产品的需要选择不同的方案。 而文本将要介绍一下android产品中另一项基础功能-...

2016-06-07 19:30:35

阅读数:10382

评论数:1

Android产品研发(七)-->Apk热修复

上一篇文章中我们讲解了App的数据统计,其主要分为两种:使用第三方服务统计和自身实现数据统计。一般而言我们使用第三方统计服务已经可以很好的满足我们的也无需求了,只是部分数据敏感性App,可能自身实现数据统计服务是一个更好的选择。 而本文中将要介绍的是App端的网络传输协议。那么这里首先需要明确一...

2016-06-05 18:49:30

阅读数:12366

评论数:4

Android产品研发(六)-->Apk混淆

本文主要讲解Apk的混淆,这里的混淆分为两种代码混淆和资源文件混淆。实际的产品研发中为了防止自己的劳动成果被别人窃取,混淆代码能有效防止apk文件被反编译,进而查看源代码。说来惭愧,作为互联网创业公司的我们也确实对竞品Apk反编译研究过,如果Apk混淆之后确实对理解源码的业务流程造成了困扰,这也从...

2016-06-04 17:50:33

阅读数:14117

评论数:3

Android产品研发(五)-->多渠道打包

国内众多android开发环境有众多的应用市场,产品存在着不同渠道统计的需求,为此android开发人员需要为每个应用市场发布一个安装包,这是一件很苦逼的事,更换成android studio之后自带的编译工具gradle其实已经可以实现多渠道打包的功能了;下面主要简单介绍一下gradle如何实现...

2016-06-03 20:15:37

阅读数:15189

评论数:4

Android产品研发(四)-->减小Apk大小

随着移动技术的深入发展,各种炫酷效果的更新,在我们追求UI与UE的同时一个不如忽视的问题逐渐暴露出来,那就是apk文件越来越大,可能有的童鞋会说现在都是wifi环境,apk文件增大几M不是什么大不了的问题,这其实也是有一定道理的,但是作为开发人员的我们这绝不是我们认为可以忽略这个问题的理由。优化A...

2016-06-02 18:05:32

阅读数:14416

评论数:6

Android产品研发(三)-->基类Activity

在实际的android产品研发中,一般的我们在写Activity的时候都会继承于一个基类Activity,该Activity是所有的Activity的基类。在该基类中我们主要用于重写一些共有的逻辑。好处是显而易见的对于一些Activity的共有逻辑我们不必要在每个Activity中都重新写一遍,只...

2016-06-01 21:03:10

阅读数:12361

评论数:25

Android产品研发(二)-->启动页优化

上一篇文章中我们介绍加单说明了一下android的编码规范,这里我是强烈建议大家在团队合作中约定编码规范的,哪怕是一个并不是十分规范的规范总比没有规范好得多,尤其是团队产品的研发,对产品的持续迭代过程中你会越发的意识到编码规范对产品迭代的好处,当然了,这里并不是要求大家一定按照文中给出的编码规范作...

2016-05-31 16:31:17

阅读数:12483

评论数:7

提示
确定要删除当前文章?
取消 删除
关闭
关闭