android
文章平均质量分 72
古道边
做一个有态度的开发工程师!
展开
-
Android博客佳文推荐
本篇文章主要纪录我在学习过程中,发现的非常给力的CSDNBlog和个人Blog,这些Blog都有一个共同的特点,即内容详实,讲解透彻,也算是给后来的初学者指一条路吧!只要你下定决心跟随强者的脚步,成为人们眼中的大神,只不过是时间问题! 下面排名不分先后 CSDN 鸿洋:http://blog.csdn.net/lmj623565791 爱哥:http...原创 2015-10-30 11:34:43 · 549 阅读 · 2 评论 -
APK魔鬼瘦身计划
瘦身前因为平时就考虑到大小的限制,所以很多工作已经做过了,如下列举现在的状态:7.3M(Debug版本)和6.5M(Release版本)开启minifyEnabled开启shrinkResources已经去除不相关的大型库图片和代码已经经历过粗略的一轮清理开始魔鬼瘦身1. tinypng有损压缩android打包本身会对png进行无损压缩,不信大转载 2016-02-26 15:43:00 · 574 阅读 · 0 评论 -
Android 屏幕(View)坐标系统
首先明确一下 android中的坐标系统 :屏幕的左上角是坐标系统原点(0,0),原点向右延伸是X轴正方向,原点向下延伸是Y轴正方向。一、View的坐标 需要注意view的坐标是相对父容器而言的,包括:getTop()、getBottom(),getLeft(),getRight()。以getTop为例,函数源代码为:/*** Top position转载 2016-03-08 16:19:56 · 530 阅读 · 0 评论 -
Android夜间模式最佳实践
由于Android的设置中并没有夜间模式的选项,对于喜欢睡前玩手机的用户,只能简单的调节手机屏幕亮度来改善体验。目前越来越多的应用开始把夜间模式加到自家应用中,没准不久google也会把这项功能添加到Android系统中吧。业内关于夜间模式的实现,有两种主流方案,各有其利弊,我较为推崇第三种方案:1、通过切换theme来实现夜间模式。2、通过资源id映射的方式来实现夜间模式。3转载 2016-01-07 12:04:59 · 703 阅读 · 0 评论 -
学习Android有用的插件和工具推荐
此博文收藏常用的一些开发工具,主要包括但是不仅限于Android ,会随时保持不定期更新,添加一些开发中的好工具,也欢迎大家推荐!原创 2015-11-05 13:24:20 · 595 阅读 · 0 评论 -
Android性能优化典范 - 第3季
Android性能优化典范 - 第3季Android性能优化典范的课程最近更新到第三季了,这次一共12个短视频课程,包括的内容大致有:更高效的ArrayMap容器,使用Android系统提供的特殊容器来避免自动装箱,避免使用枚举类型,注意onLowMemory与onTrimMemory的回调,避免内存泄漏,高效的位置更新操作,重复layout操作的性能影响,以及使用转载 2015-11-02 17:44:10 · 625 阅读 · 0 评论 -
Android Training - 管理应用的内存
Android Training - 管理应用的内存Random Access Memory(RAM)在任何软件开发环境中都是一个很宝贵的资源。这一点在物理内存通常很有限的移动操作系统上,显得尤为突出。尽管Android的Dalvik虚拟机扮演了常规的垃圾回收的角色,但这并不意味着你可以忽视app的内存分配与释放的时机与地点。为了GC能够从app中及时回收内存,我们转载 2015-11-02 17:39:54 · 329 阅读 · 0 评论 -
Android Training - 代码性能优化小技巧
Android Training - 代码性能优化小技巧Performance Tips这篇文章主要介绍一些小细节的优化技巧,虽然这些小技巧不能较大幅度的提升应用性能,但是恰当的运用这些小技巧并发生累积效应的时候,对于整个App的性能提升还是有不小作用的。通常来说,选择合适的算法与数据结构会是你首要考虑的因素,在这篇文章中不会涉及这方面的知识点。你应该使用这篇文章中转载 2015-11-02 17:39:06 · 391 阅读 · 0 评论 -
Android Training - 提升布局文件的性能(Lesson 2 - 使用include标签重用Layout)
Android Training - 提升布局文件的性能(Lesson 2 - 使用include标签重用Layout)Re-using Layouts with尽管Android提供了很多种小的组件可以重用,我们还需要自定义一些稍微复杂一点的小组件进行重用。我们可以使用 与 标签来对当前的layout嵌入一些其他的layout.在创建一个稍微复杂一点的l转载 2015-11-02 17:36:25 · 370 阅读 · 0 评论 -
Android性能优化典范 - 第2季
Android性能优化典范 - 第2季APR 29TH, 2015 | COMMENTSGoogle前几天刚发布了Android性能优化典范第2季的课程,一共20个短视频,包括的内容大致有:电量优化,网络优化,Wear上如何做优化,使用对象池来提高效率,LRU Cache,Bitmap的缩放,缓存,重用,PNG压缩,自定义View的性能,提升设置alpha之后View的转载 2015-11-02 17:42:58 · 325 阅读 · 0 评论 -
Android性能优化典范
Android性能优化典范JAN 17TH, 2015 | COMMENTS2015新年伊始,Google发布了关于Android性能优化典范的专题,一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的Android App。课程专题不仅仅介绍了Android系统中有关性能问题的底层工作原理,同时也介绍了如何通过工具来找出性能问题以及提升性能的建议。主要从三个方面展转载 2015-11-02 17:41:02 · 303 阅读 · 0 评论 -
Android内存优化之OOM
Android内存优化之OOMSEP 12TH, 2015 | COMMENTSAndroid的内存优化是性能优化中很重要的一部分,而避免OOM又是内存优化中比较核心的一点,这是一篇关于内存优化中如何避免OOM的总结性概要文章,内容大多都是和OOM有关的实践总结概要。理解错误或是偏差的地方,还请多包涵指正,谢谢!(一)Android的内存管理机制Google在A转载 2015-11-02 17:45:02 · 378 阅读 · 0 评论 -
Android Training - 提升布局文件的性能(Lesson 4 - 使用ViewHolder来提升ListView的性能)
Android Training - 提升布局文件的性能(Lesson 4 - 使用ViewHolder来提升ListView的性能)Making ListView Scrolling Smooth使得滚动ListView平滑的关键在与保持APP的UI thread与复杂的操作隔离。确保另起一个Thread来处理Disk IO,network access或者SQL转载 2015-11-02 17:38:09 · 378 阅读 · 0 评论 -
Android Training - 提升布局文件的性能(Lesson 3 - 使用viewStub按需载入视图)
Android Training - 提升布局文件的性能(Lesson 3 - 使用viewStub按需载入视图)Loading Views On Demand某些时候,我们需要一些很复杂的视图却仅仅很少用到。如果我们在它仅仅需要的时候再载入,这样可以减少内存的使用并且给用户带来流畅的体验。1)Define a ViewStubViewStub是一个转载 2015-11-02 17:37:20 · 406 阅读 · 0 评论 -
利用fiddler抓包
Fiddler不但能截获各种浏览器发出的HTTP请求, 也可以截获各种智能手机发出的HTTP/HTTPS请求。前提条件:安装Fiddler的机器,跟Iphone 在同一个网络里, 否则IPhone不能把HTTP发送到Fiddler的机器上来配置Fiddler, 允许"远程连接"打开Fiddler, Tools-> Fiddler Options 。 (配置完后记原创 2014-12-15 17:05:23 · 1542 阅读 · 0 评论 -
fiddler抓包数据分析
上文(http://blog.csdn.net/u010405231/article/details/41945563 )中已经介绍了Fiddler的原理和软件界面。本文主要针对Fiddler的抓包处理。Fiddler抓取HTTP请求。抓包是Fiddler的最基本的应用,以本博客为例,启动Fiddler之后,在浏览器中输入http://blog.csdn.net/ohmygirl 键入回车原创 2014-12-15 17:25:56 · 6492 阅读 · 1 评论 -
内存泄露从入门到精通三部曲之常见原因与用户实践
常见原因1.集合类集合类如果仅仅有添加元素的方法,而没有相应的删除机制,导致内存被占用。如果这个集合类是全局性的变量 (比如类中的静态属性,全局性的 map 等即有静态引用或 final 一直指向它),那么没有相应的删除机制,很可能导致集合所占用的内存只增不减。 2.单例模式不正确使用单例模式是引起内存泄露的一个常见问题,单例对象在被初始化后将在转载 2015-11-20 09:55:53 · 405 阅读 · 0 评论 -
Android中自定义仿IOS回弹效果的ListView
ios中有一个控件回弹的效果,比如listview ,拉动到第一条或者最后一条数据的时候,还可以继续拉动,松手就回弹到原来位置,很赞,其实在android中实现起来也非常简单,listview有两个 方法,提供了我们这样实现的可能,只需要重载 这两个方法即可@Override public void setOverScrollMode(int mode) { super.setO原创 2015-11-16 14:46:21 · 1254 阅读 · 2 评论 -
Android 编程下 Touch 事件的分发和消费机制
ViewGroup 和 View 对与 Touch 事件相关的三个方法均能响应,而 Activity 对 onInterceptTouchEvent(MotionEvent ev) 也就是事件拦截不进行响应。另外需要注意的是 View 对 dispatchTouchEvent(MotionEvent ev) 和 onInterceptTouchEvent(MotionEvent ev) 的响应的前提是可以向该 View 中添加子 View,如果当前的 View 已经是一个最小的单元 View(比如 Text原创 2015-02-01 15:07:46 · 687 阅读 · 0 评论 -
Android热修复三部曲之动态加载补丁.dex文件
该篇作为Andriod热修复三部曲的最后一篇,本篇基于前两篇在之前的博客中,我们将.java文件打成了三个.dex文件 - classes.dex:程序必须启动的类,保证没问题的(Application,MainActivity) - classes2.dex:业务逻辑的类,如果出问题了可以动态替换。 - classes3.dex:jar包的类,基本上不会出现问题。那么转载 2016-10-09 12:49:40 · 475 阅读 · 0 评论 -
Android热修复三部曲之MultiDex 分包架构
在上一篇博客中,讲解了使用Ant打包的流程,也编写了相应的脚本代码。但是忘了说明怎么运行了。有两种方式:在Eclipse的build.xml 中,右键run as 即可。通过命令行形式进入到当前工程目录下,输入命令ant 工程名。上一篇漏下的已经补充。下面开始今天博客的主要内容。该篇博客主要分为三个部分:什么是分包架构分包架构的好处怎么实现分包什么是分包架构转载 2016-10-09 12:48:42 · 371 阅读 · 0 评论 -
Android 热修复三部曲之基本的Ant打包脚本
热修复从2015年开始,逐渐的被推广开来,现在已经是比较热门的技术。当Android发布的Apk中,因为有个bug,导致程序一直崩溃。如果此时发布版本,时间间隔太短,则会导致用户的使用繁琐,导致用户的流逝。而热修复达到的目的便是在不发布版本的情况下,动态修改其中包含bug的类,实现替换,达到修复bug 的目的。现在市面上有一些开源的热修复,例如androidFix等等。对于这些转载 2016-10-09 12:47:47 · 516 阅读 · 0 评论 -
Android编译时注解框架系列1-什么是编译时注解
概述Android编译时注解框架从入门到项目实践。该系列将通过5篇博客一步步教你打造一个属于自己的编译时注解框架,并在之后开源出基于APT的编译时注解框架。提到注解,普遍都会有两种态度:黑科技、低性能。而使用注解往往可以实现用非常少的代码作出匪夷所思的事情,比如这些框架:ButterKnife、Retrofit。但一直被人诟病的是,运行时注解会因为java反射而引起较为严重转载 2016-08-15 13:46:34 · 1125 阅读 · 0 评论 -
Android编译时注解框架系列2-Run Demo
概述先讲一下编写《Android编译时注解框架》的初衷吧,APT其实并不难,可以说是简单且高效,但关于APT的资料却并不多,甚至很多人都不知道这么一个技术。国内关于APT的博客屈指可数,唯二找到的几篇初级讲解一个是用Eclipse写得,一个是用AndroidStudio加Intellij。刚开始着实踩了不少坑,但事实是,APT完全可以用AndroidStudio单独实现。光是项目搭建就如此转载 2016-08-15 13:45:36 · 488 阅读 · 0 评论 -
Android编译时注解框架3-Run Project:OnceClick
概述因为编译时注解框架前期项目搭建部分需要较多的图文讲解,所以前一章《Android编译时注解框架-Run Demo》只是实现了最简单应用,或许注解信息,并没有生成代码。本章将以生成代码为重点进行一个案例讲解。框架名称:OnceClick框架功能:功能就是它的名字:在一定时间内,按钮点击事件只能执行一次。未到指定时间,不执行点击事件。框架背景:从用户的角转载 2016-08-15 13:44:40 · 535 阅读 · 0 评论 -
Android编译时注解框架4-爬坑
概述因为有关APT的资料过少,又因为是Java Moudle +Android Moudle的使用方式,在项目编写过程中,会有一些匪夷所思的奇怪问题~入门阶段真的是步履维艰。这篇博客就是编写《Android编译时注解框架》系列中,将所遇到的一些坑列举出来,并给出一些绕过坑的方法。(注意哦~是绕过,坑还在,没有填~因为不知道这坑咋来的……)随时踩坑,随时更新~坑1转载 2016-08-15 13:38:51 · 3357 阅读 · 0 评论 -
Android编译时注解框架5-语法讲解
概述本章内容主要对APT一些语法进行简单讲解。apt的学习资料真的太少了,我的学习方法基本上只能通过看开源库的源码猜、看源码注释猜、自己运行着猜……这里对猜对的结果进行一个总结,让后来者可以更快的上手。第一次写这种类型的博客,总结的可能有些分散,建议结合开源库源码学习。自定义注解相关定义注解格式: public @interface 注解名 {定义体}转载 2016-08-15 13:38:12 · 2451 阅读 · 1 评论 -
Ant 脚本 多渠道打包
最近研究Android里用ant打多个渠道的apk包,终于搞出头绪!!走了很多错路,希望大家不要这样子!!下面就是个人的几点总结,希望对大家有帮助: 首先说的是我用的ant不是eclipse和android SDk里面自带的ant,而是从这里下载的 -- Ant官网http://ant.apache.org/ , 下载Ant,当然第一步就是安装ant了,步骤如下:转载 2016-08-22 16:43:38 · 762 阅读 · 0 评论 -
aapt的常用命令
1. 列出apk包的内容 aapt l[ist] [-v] [-a] file.{zip,jar,apk}-v 以table形式列出来-a 详细列出内容 例如:aapt l ,这个命令就是查看apk内容2. 查看apk一些信息aapt d[ump] [--values] WHAT file.{apk} [asset [asset ...]]bad原创 2016-08-21 17:24:41 · 284 阅读 · 0 评论 -
Ant自动编译打包&发布 android项目
Eclipse用起来虽然方便,但是编译打包android项目还是比较慢,尤其将应用打包发布到各个渠道时,用Eclipse手动打包各种渠道包就有点不切实际了,这时候我们用到Ant帮我们自动编译打包了。1 Ant自动编译打包android项目 1.1 Ant安装 ant的安装比较简单,下载ant压缩包 http://ant.apache.org (最新的为1转载 2016-08-20 17:47:18 · 353 阅读 · 0 评论 -
命令行开发、编译、打包Android应用程序
流程概述:1、打包资源文件,生成R.java文件2、处理aidl文件,生成相应java 文件3、编译工程源代码,生成相应class 文件4、转换所有class文件,生成classes.dex文件5、打包生成apk6、对apk文件进行签名7、对签名后的apk文件进行对其处理Android SDK提供了一系列命转载 2016-08-20 17:39:38 · 2337 阅读 · 0 评论 -
Android插件化框架和热修复技术的资料收集和汇总
本文出自 :https://www.figotan.org/2016/08/12/android-plugin-and-hotfix-collections/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io插件化框架一个APP功能的堆叠和业务的蓬勃发展,导致APP越来越庞大和臃肿,每一个APP都有一颗超级APP转载 2016-08-15 18:05:03 · 473 阅读 · 0 评论 -
内存泄露从入门到精通三部曲之基础知识篇
一、首先以一个内存泄露实例来开始本节基础概念的内容:实例1:(单例导致内存对象无法释放而泄露)可以看出ImageUtil这个工具类是一个单例,并引用了activity的context。试想这个场景,应用起来以后,转屏。转屏以后,旧MainActivity会destroy,新MainActivity会重建,导致单例ImageUtil重新getInstance。转载 2015-11-17 09:57:56 · 440 阅读 · 0 评论 -
内存泄露从入门到精通三部曲之排查方法篇
1 最原始的内存泄露测试重复多次操作关键的可疑的路径,从内存监控工具中观察内存曲线,是否存在不断上升的趋势且不会在程序返回时明显回落。这种方式可以发现最基本,也是最明显的内存泄露问题,对用户价值最大,操作难度小,性价比极高。2 MAT内存分析工具2.1 MAT分析heap的总内存占用大小来初步判断是否存在泄露在Devices 中,点击要监控的程序。转载 2015-11-17 10:23:32 · 385 阅读 · 0 评论 -
Android内存管理知识
相信一步步走过来的Android从业者,每个人都会遇到OOM的情况。如何避免和防范OOM的出现,对于每一个程序员来说确实是一门必不可少的能力。今天我们就谈谈在Android平台下内存的管理之道,开始今天的主题之前,先再次回顾两个概念。内存泄漏:对象在内存heap堆中中分配的空间,当不再使用或没有引用指向的情况下,仍不能被GC正常回收的情况。多数出现在不合理的编码情况下,比如在 Activi原创 2015-10-13 19:56:23 · 350 阅读 · 0 评论 -
Gradle打包那些事儿
使用gradle打包apk已经成为当前主流趋势,我也在这个过程中经历了各种需求,并不断结合gradle新的支持,一一改进。在此,把这些相关的东西记录,做一总结。原创 2015-11-13 11:06:27 · 1733 阅读 · 0 评论 -
携程Android App插件化和动态加载实践
编者按:本文为携程无线基础团队投稿,介绍它们已经开源的Android动态加载解决方案 DynamicAPK ,本文作者之一,携程无线研发总监陈浩然将会在 ArchSummit北京2015架构师大会 上分享架构优化相关内容,欢迎关注。携程Android App的插件化和动态加载框架已上线半年,经历了初期的探索和持续的打磨优化,新框架和工程配置经受住了生产实践的考验。本文将详细介绍Androi转载 2015-11-05 09:35:04 · 1221 阅读 · 0 评论 -
Android Volley完全解析(二),使用Volley加载网络图片
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17482165在上一篇文章中,我们了解了Volley到底是什么,以及它的基本用法。本篇文章中我们即将学习关于Volley更加高级的用法,如何你还没有看过我的上一篇文章的话,建议先去阅读Android Volley完全解析(一),初识Volley的基本用法。在上篇文章中转载 2015-02-02 10:21:42 · 414 阅读 · 0 评论 -
Android Volley完全解析(一),初识Volley的基本用法
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/174820951. Volley简介我们平时在开发Android应用的时候不可避免地都需要用到网络技术,而多数情况下应用程序都会使用HTTP协议来发送和接收网络数据。Android系统中主要提供了两种方式来进行HTTP通信,HttpURLConnection和Http转载 2015-02-02 10:18:36 · 384 阅读 · 0 评论 -
面试时,你会问面试官哪些问题?
面试时,你会问面试官哪些问题?明天又要去参加一次面试。每次面试的时候,面试官都会在最后给面试者一些时间,来问问题。这是个非常好的机会,能按照自己的思路,来了解职位、技术、企业文化、福利待遇、企业状况和前景等情况,以弥补前面面试过程中没有了解到的情况。但较早以前面试准备不太充分,虽然也能地问上一些问题,但挂一漏万,每次回来后,总觉得对企业、对职位没有完全了解清楚,不能依此作出很理性的决断转载 2015-02-05 14:06:40 · 441 阅读 · 0 评论