综合( 右侧选择分类 )
android01

Android源码解析(十六)-- Android应用进程Context创建流程

今天讲讲应用进程Context的创建流程,相信大家平时在开发过程中经常会遇到对Context对象的使用,Application是Context,Activity是Context,Service也是Context,所以有一个经典的问题是一个App中一共有多少个Context?这个问题的答案是Application + N个Activity + N个Service。最后我们得出结论,应用进程的起始方法
2159 人浏览
littleGG

Android最全开发资源

Android最全开发资源首先, 我觉得最好的Android学习路径还是:看Google Android官方开发主页(在国内的朋友可以上这里), 要记住 Read The "Friendly" (F***ing) Doc (阅读那该死的文档) , 和看 Google Android 官方视频教程。加上自己写程序。啥也别说了, 辛苦收集的中外精彩资源。觉得好, 记得点个赞~问:为
2802 人浏览
android01

Android源码解析(十五)-- Activity销毁流程

继续我们的源码解析,上一篇文章我们介绍了Activity的启动流程,一个典型的场景就是Activity a 启动了一个Activity b,他们的生命周期回调方法是:onPause(a) --> onCreate(b) --> onStart(b) --> onResume(b) --> onStop(a)而我们根据源码也验证了这样的生命周期调用序列,那么Activity的
2174 人浏览
android01

Android源码解析(十四)-- Activity启动流程

好吧,终于要开始讲解Activity的启动流程了,Activity的启动流程相对复杂一下,涉及到了Activity中的生命周期方法,涉及到了Android体系的CS模式,涉及到了Android中进程通讯Binder机制等等,首先介绍一下Activity,这里引用一下Android guide中对Activity的介绍:An activity represents a single screen w
3209 人浏览
android01

Android源码解析(十三)-- apk安装流程

上一篇文章中给大家分析了一下android系统启动之后调用PackageManagerService服务并解析系统特定目录,解析apk文件并安装的过程,这个安装过期实际上是没有图形界面的,底层调用的是我们平时比较熟悉的adb命令,那么我们平时安装apk文件的时候大部分是都过图形界面安装的,那么这种方式安装apk具体的流程是怎样的呢?下面我们就来具体看一下apk的具体安装过程,相信大家都知道如果我们
3040 人浏览
android01

Android源码解析(十二)-- Android系统启动并解析Manifest的流程

最近有同学问我关于Manifest何时被系统解析的问题,正好也分析到这一块了,索性这一章就讲解一下android系统何时解析Manifest吧,这里的Manifest指的是android安装文件apk中的androidManifest.xml文件是何时被解析的。大家应该都知道,Android系统启动之后,我们就可以在一个应用中打开另一个从未打开过的应用,或者是在一个应用中发送广播,如果另外一个应用
2388 人浏览
android01

Android源码解析(十一)-- 应用进程启动流程

在android guide中有这样的一段关于android应用程序进程的描述:**By default, every application runs in its own Linux process. Android starts the process when any of the application's components need to be executed, then
2161 人浏览
android01

Android源码解析(十)-- Launcher启动流程

Launcher程序就是我们平时看到的桌面程序,它其实也是一个android应用程序,只不过这个应用程序是系统默认第一个启动的应用程序,这里我们就简单的分析一下Launcher应用的启动流程。不同的手机厂商定制android操作系统的时候都会更改Launcher的源代码,我们这里以android23的源码为例大致的分析一下Launcher的启动流程。通过上一篇文章,我们知道SystemServer
3296 人浏览
android01

Android源码解析(九)-- SystemServer进程启动流程

上面一文中我们讲过android系统中比较重要的几个进程:init进程,Zygote进程,SystemServer进程已经各种应用进程,其中Zygote进程是整个android系统的根进程,包含SystemServer进程已经各种应用进程在内的进程都是通过Zygote进程fork出来的,具体可参见: android源码解析之(八)-->Zygote进程启动流程那么SystemServer进程
3002 人浏览
android01

Android源码解析(八)-- Zygote进程启动流程

大家都知道android系统的Zygote进程是所有的android进程的父进程,包括SystemServer和各种应用进程都是通过Zygote进程fork出来的。Zygote(孵化)进程相当于是android系统的根进程,后面所有的进程都是通过这个进程fork出来的,而Zygote进程则是通过linux系统的init进程启动的,也就是说,android系统中各种进程的启动方式init进程 --&
3319 人浏览
android01

Android源码解析(七)-- Android之LruCache

android开发过程中经常会用到缓存,现在主流的app中图片等资源的缓存策略一般是分两级,一个是内存级别的缓存,一个是磁盘级别的缓存。作为android系统的维护者google也开源了其缓存方案,LruCache和DiskLruCache。从android3.1开始LruCache已经作为android源码的一部分维护在android系统中,为了兼容以前的版本android的support-v4
1945 人浏览
android01

Android源码解析(六)-- Android之Log日志

首先说点题外话,对于想学android framework源码的同学,其实可以在github中fork一份,具体地址:platform_frameworks_base这里面基本都是android framework层的源码了。而且最近发现了一个比较不错的github插件:OctoTree,它 是一个浏览器插件,它可以让你在Github 看代码时,左边栏会出现一个树状结构,就像我们在IDE 一样。当
2367 人浏览
web

H5 移动端禁止上下滚动css设置

H5 移动端禁止上下滚动, 只需要css中同时设置 下面两个属性html,body{ overflow:hidden; height:100%; }
4115 人浏览
cheng

GitHub 上有什么好玩的项目?

上个月有水友私信问我,GitHub 上有没有比较好玩的项目可以推荐?我跟他说:"有,过两天我整理一下"。然而,一个月过去了,我把这件事情忘了精光,直至他昨天提醒我才记起。不过,答应人家的事情还是要做的。今年我们在微博上陆陆续续分享过不少比较有趣的项目,昨天我抽空逐个过了一下,发现其中有几个还挺有意思的,下面就来跟大家简单盘点一下。神探夏洛特,全网查名!去年年底,国外有个小哥在
2289 人浏览
cheng

我是如何通过开源项目月入 10 万的?

前言如果你是一名前端工程师,那么你一定对 fullPage.js 这个开源项目不会感到陌生。这是前端社区中非常著名的 JavaScript 组件,能快速给网站加上全屏幻灯片的展示效果。https://github.com/alvarotrigo/fullpage.js不久前,国外一家专注于报道独立开发者的媒体 Indie Hackers 对 fullPage.js 的作者进行了专访。在本次专访中,
2154 人浏览
cheng

5种编程语言可能注定失败!

并非所有编程语言都能长盛不衰。事实上,随着新一代开发者使用的语言与框架不断迭代,即使是当下最受欢迎的编程语言在未来也会有跌落神坛的一天。而为了确定哪些编程语言正在走上衰败的道路,来自北美的一家技术网站 Dice 在对比知名 TIOBE、RedMonk 编程语言排行榜以及 Dice 招聘需求后得出一些结论,其认为下面 5 种编程语言最终会注定失败。接下来,我们将一窥究竟。1、Ruby曾几何时,Rub
2626 人浏览
android01

Android源码解析之(五)-- Android之IntentService

什么是IntentService?简单来说IntentService就是一个含有自身消息循环的Service,首先它是一个service,所以service相关具有的特性他都有,同时他还有一些自身的属性,其内部封装了一个消息队列和一个HandlerThread,在其具体的抽象方法:onHandleIntent方法是运行在其消息队列线程中,废话不多说,我们来看其简单的使用方法:定义一个IntentS
1980 人浏览
android01

Android源码解析之(四)-- Android之HandlerThread

HandlerThread是个什么东西?查看类的定义时有这样一段话:Handyclassforstartinganewthreadthathasalooper.Theloopercanthenbeusedtocreatehandlerclasses.Notethatstart()muststillbecalled.意思就是说:这个类的作用是创建一个包含looper的线程。那么我们在什么时候需要用到
2620 人浏览
android01

Android源码解析之(三)-- Android异步任务AsyncTask

android的异步任务体系中还有一个非常重要的操作类:AsyncTask,其内部主要使用的是java的线程池和Handler来实现异步任务以及与UI线程的交互。本文主要解析AsyncTask的的使用与源码。首先我们来看一下AsyncTask的基本使用:classMAsyncTaskextendsAsyncTask<Integer,Integer,Integer>{ @Overrid
1989 人浏览
android01

Android源码解析之(二)-- Android异步消息机制

知乎上看了一篇非常不错的博文:有没有必要阅读ANDROID源码痛定思过,为了更好的深入android体系,决定学习android framework层源码,就从最简单的android异步消息机制开始吧。(一)Handler的常规使用方式publicclassMainActivityextendsAppCompatActivity{ publicstaticfinalStringTAG=Mai
2029 人浏览