大家都知道android系统的Zygote进程是所有的android进程的父进程,包括SystemServer和各种应用进程都是通过Zygote进程fork出来的。Zygote(孵化)进程相当于是android系统的根进…
分类:移动开发
android 属性系统,SystemProperties 的简介---转载
每个属性都有一个名称和值,他们都是字符串格式。属性被大量使用在Android系统中,用来记录系统设置或进程之间的信息交换。属性是在整个系统中全局可见的。每个进程可以get/set属性。在 系统初始化时,Android将分…
Android开发之获取手机运行时间
前言 昨天我碰到一个问题,需要判断两次的时间,我当时的第一反应是用System.currentTimeMillis()来判断,最后发现这样会有一个BUG,那就是用户如果手动修改时间,那就全乱套了,于是我想有没有一个时间是…
我理解的 iOS 与 Android 的区别
事实上在讲清楚这个问题之前,必须知道一个所有人都无法拒绝的常识,即:对大多数人来说 iOS 绝对比 Android 好用。本文试着从使用者的角度出发谈谈自己对两个手机端操作系统的理解与认识 iOS&n…
release时,禁用NSAssert
调试cocoa程序在程序出错时,不会马上停止。使用宏NSAssert可以让程序出错时马上抛出异常。在debug情况下,所有NSAssert都会被执行。在release下不希望NSAssert被执行,我们通常在releas…
scrollsToTop使用技巧
情景描述 在有TableView和ScrollView的界面中,点击屏幕的Status Bar即可回到顶部,这是因为ScrollView的property scrollsToTop默认为YES。 使用须知 在苹果文档中特…
Objective-C语言的 if ( self = [super init] )的理解
在初学OC开发时,对这段代码if(self = [super init])不甚理解,书上和网上说的是:若要初始化子类就必须初始化父类,但是为什么呢?让我们来一探究竟。 我们先假设现在自己创建了个类,我们起名叫MyObje…
压缩代码和资源
要尽可能减小 APK 文件,您应该启用压缩来移除发布构建中未使用的代码和资源。 代码压缩通过 ProGuard 提供,ProGuard 会检测和移除封装应用中未使用的类、字段、方法和属性,包括自带代码库中的未使用项(这使…
Tinker源码分析(五):加载so补丁流程
本系列 Tinker 源码解析基于 Tinker v1.9.12 校验so补丁流程 与加载资源补丁类似,加载so补丁也要先从校验开始看起。 其实总体来说,Tinker 中加载 so 补丁文件的关键代码就一句: Syste…
Java - 巧妙解决Android的ViewPager懒加载 (原创)
开发过程中,我们经常会遇到使用**ViewPager**控件的场景,但是往往我们需要的是只需要加载当前页面,因此我在其中搞了一些事情。 在ViewPager我们使用最多的,应该是**Fragment**类吧!下面我们就来…
小码哥Android培训-Gradle 入门到精通(三)
前言 根据我们上一篇的介绍,我们知道了项目的结构以及构建的流程,根据上面的知识,我们知道了构建的规则实际就是我们写在build.gradle的内容。gradle android插件读取这个文件的内容后,最后完成构建工作。…
在Android P上使用Http
前言 不少同学在适配Android P的时候会遇到not permitted by network security policy问题: //使用HttpUrlConnection时遇到的异常 W/System.err:…