【朝花夕拾】Android Log篇】的更多相关文章

前言  从事Android开发的这些年中,经常碰到这样一个现象:同一款app中,往往有好几种风格迥异的log处理方式,有时候会让维护者晕头转向.同时笔者也经常碰带一些模棱两可的问题:Log等级分好几种,到底什么情况下用哪个等级的log?什么情况下可以使用log,log怎么用,为什么要这么用?Android的log这么多,要怎么样高效地查看log?带着这些问题,笔者根据平时的开发经验.公司的log规范文档.网络中的相关资料,对log使用做了一定的整理.对于最基本的使用和log介绍,本文不做赘述,希…
前言 只要是面试高级工程师岗位,Android跨进程通信就是最受面试官青睐的知识点之一.Android系统的运行由大量相互独立的进程相互协助来完成的,所以Android进程间通信问题,是做好Android开发高级工程师必须要跨过的一道坎.但是,我们是否真的清楚,Android中都有哪些方式实现跨进程通信呢?这些方式都有哪些优缺点?如何选择这些通信方式?Binder是什么?为什么要引入Binder?Binder是这么样实现跨进程通信的?AIDL是什么?AIDL和Binder又有什么关系呢?....…
前言        Android系统与其他操作系统有个很不一样的地方,就是其他操作系统尽可能移除不再活动的进程,从而尽可能保证多的内存空间,而Android系统却是反其道而行之,尽可能保留进程.Android这样设计有什么优势呢?又是通过怎样的方法来管理这些被保留的进程的呢?Android用户又该如何正确使用手机从而更好发挥Android系统所特有的优势呢?本文将一一为您解开这些谜团. 本文的主要内容如下:            一.Android进程管理的特殊设计 Linux系统对进程的管理…
前言 Android虚拟机的使用,使得android应用和Linux内核分离,这样做使得android系统更稳定可靠,比如程序中即使包含恶意代码,也不会直接影响系统文件:也提高了跨平台兼容性.在Android4.4以前的系统中,Android系统均采用Dalvik作为运行andorid程序的虚拟机,在android发展中具有举足轻重的地位,而Android 5.0及以后的系统使用ART虚拟机取代Dalvik,在性能上做了很大的优化.本文将对这两款虚拟机做一些介绍,主要内容如下: 阅读本文,建议结…
序言        笔者从事Anroid开发有些年头了,深知掌握Anroid性能优化方面的知识的必要性,这是一个程序员必须修炼的内功.在面试中,它是面试官的挚爱,在工作中,它是代码质量的拦路虎,其重要性可见一斑.在团队中,性能优化的工作又往往由经验丰富的老师傅来完成,可见要做好性能优化,绝不是一件容易的事情. 性能优化方面涉及的知识点比较广,有理论基础知识,也有实际操作技能,笔者将通过一系列的文章来进行整理,将主要包括Java虚拟机.内存分配.垃圾回收,android虚拟机.进程管理.内存优化.…
在上一篇日志([朝花夕拾]Android性能篇之(二)Java内存分配)中有讲到,JVM内存由程序计数器.虚拟机栈.本地方法栈.GC堆,方法区五个部分组成.其中GC堆是一块多线程的共享区域,它存在的作用就是存放对象实例.本节中所要讲述的各种场景,就发生在这块区域,垃圾回收也主要发生在GC堆内存中.本章内容为高质量面试中几乎是必问的知识点,尤其是其中GC Root.分代算法.引用类型等方面的知识点,可以很好地体现程序员的内功.本文主要是在相关文章的基础上进行搜集和整理而成,也包含了自己的一些理解和…
前言 一年前写过一篇文章[朝花夕拾]Handler篇,随着这一年来对Handler更多的认识和理解,本文对Handler知识点做的一些补充. 一.为什么要引入Handler Handler的主要作用是切换线程,将线程切换到Handler所使用的Looper所在线程中去,我们大部分的开发者通常使用Handler是用于子线程通知主线程更新UI,我们需要明确的是更新UI只是Handler的其中一个作用而已. 那么为什么只能在主线程中更新UI,而不能在子线程中完成呢?因为Android系统规定,只能在主…
注:本文中的recreate是指当内存不足时,Activity被回收,但再次来到此Activity时,系统重新恢复的过程.例如:当Activity A到Activity B时,如果内存不足,A被回收,但当用户按下Back键返回时,A又会被系统重新创建. 为了便于问题展开,我们首先来看一段最简单的代码 ----------------代码片段1------------------ package com.example.corn.corntest; import android.app.Activ…
深入理解gradle编译-Android基础篇 导读 Gradle基于Groovy的特定领域语言(DSL)编写的一种自动化建构工具,Groovy作为一种高级语言由Java代码实现,本文将对Gradle一些常见问题进行一一介绍: 理解Gradle与android app之间的关系,以及Gradle需要构建的build文件. 在Android Studio中执行Gradle命令. 在Android app添加java库文件. 将eclipse工程导入Eclipse ADT工程 如何为一个APK文件进…
在android使用篇(三) MVC模式中提到一个问题: 1) 视图层(View):一般採用XML文件进行界面的描写叙述,使用的时候能够很方便的引入,可是用xml编写了,又须要在Acitvity声明而且实例化,有点麻烦,考虑是否能做一个类似注解实现匹配,或者写一个类获取xml的各个节点然后自己主动进行封装,当然,这仅仅是个想法,以后再实现. 今天最终把这个想法实现了,使用依赖注入IOC注解实现对activity中控件的实例化. 先普及一下java的反射机制和注解机制的知识: 下面引用大神的两篇文…