- 博客(15)
- 收藏
- 关注
原创 【Android FrameWork】SystemServer
Android系统在启动的时候有两个非常重要的进程,一个是Zygote,另一个就是system_server。
2023-03-26 01:39:29
622
原创 【Android FrameWork】Zygote
Zygote做为一个孵化器,会提前加载一些系统资源、创建Java虚拟机、注册JNI等等,这样子进程就可以直接使用,避免重复加载。比如Zygote中的JNI函数、主题资源等等。
2023-03-25 17:58:10
514
原创 【Android FrameWork】第一个启动的程序--init
init是android启动之后的第一个进程,我们从init打开FrameWork的神秘大门~
2023-03-25 17:55:58
293
原创 Android Studio3.0使用Gradle可能遇见的问题
Android Studio3.0,在Google I/O 2017上发布,与2017/10/25正式发布release版,现在就可以下载啦,文章最后我会附上链接地址。Android Studio3.0包含了许多的新功能。包括:一套新的APP分析工具,用于快速诊断性能问题。支持kotlin语言,以及新的工具,帮助开发者们在最新的Oreo API上的开发。当然在这里我们都不介绍这些。。- -#,不
2017-10-25 23:56:29
1722
原创 装逼特辑 提高android studio的可观性,使用逼格的连体字
今天给大家介绍一款超级装逼利器:连体字(Fira Code)首先我们平常写代码的时候是这样的: 经过装逼升级以后: 有看出什么不同吗?对多了一个不等于符号,这样看起来是不是逼格很高呢?设置步骤: 1。首先你需要去下载Fira Code 字体(文章结尾我会附加链接),然后安装字体。 2。打开android studio 进入设置字体为连体字,并且开启。 3。重启and
2017-10-18 10:15:39
828
原创 Android 开发之 Gradle那些事儿(三)
自定义构建出的文件名 在android代码块下,使用注入替换的方式,可以自定义构建出的文件名,比每次都出来默认的app-debug.apk或者app-release.apk要友好且清晰。具体代码如下://自定义生成的apk名称applicationVariants.all { variant -> variant.outputs.each { output -> if (
2017-10-18 01:49:00
319
原创 Android 开发之 Gradle那些事儿(二)
模块的build.gradle /*标识本模块用什么gradle插件,常用的有: Android应用的->com.android.application Android库->com.android.library / apply plugin ‘…’ /关于android 的所有特殊配置都在这里面,后面会结合例子详解*/ android {…} /代码仓库,一般都配在项目的b
2017-10-17 14:48:05
415
原创 Android 开发之 Gradle那些事儿(一)
一.用Gradle编译的项目结构根目录会有一个settings.gradle、一个项目的build.gradle。每个module下会有一个本模块的build.gradle。 settings.gradlesettings.gradle 文件定义了哪些module 应该被加入到编译过程,通过include语句包含需要加入编译的模块。 例子如下: include ‘:app’, ‘:modul
2017-10-17 00:58:44
272
原创 Android 自定义控件之 带刻度的进度条
不多说,我们先上图 先放项目地址:github说明: 这是一个基于ProgressBar的进度条。 颜色、大小、背景都通过属性直接设置。 本项目没有做代码设置的属性的实现,可以自行加入。使用方法: <com.iehshx.rodhoriztalprogressbar.RodHoriztalProgressBar android:id="@+id/mine_cred
2017-10-17 00:23:25
6005
1
原创 解决butterknife 依赖库使用的Attribute value must be constant问题
在我们使用android studio 通常会把常用的代码,新建成module在library中引入butterknife的依赖: compile ‘com.jakewharton:butterknife:8.4.0’ 但是在module 使用的时候会出现以下问题: 造成这个的原因就是在library里R.id.xxx不再是final类型了,也就不是常量了变成可变的,而注入是需要传入常
2017-03-29 14:15:18
9831
原创 ARM汇编语言学习笔记之寻址方式
所谓的寻址方式就是根据指令中的操作数的信息来寻找操作数实际物理地址的方式。根据指令中给出操作数的不同格式,ARM指令支持如下几种常见的寻址方式: 1.立即数寻址: 立即数寻址也叫作立即寻址,操作数本身就在指令中直接给出,取出这个指令也就获取到了操作数。该操作数也被成为立即数。 比如:MOV R0,#15 指令分析:将立即数15传入R0寄存器中。立即数用前缀”#”表示,不同的
2017-03-15 23:55:40
695
原创 关于Handler的延时发送消息
当我们在使用Handler的sendMessageDelayed时有没有想过他是怎么延时发送的吗?其实很简单当我们sendMessage的时候,Handler会将我们的Message 放入到MessageQueue中去。 当我们从MessageQueue中取出Message的时候他会判断当前时间是否到达Message的发送时间这里的when其实就是在讲message放入MessageQueue的时
2017-02-26 23:25:30
2943
原创 Android 热修复原理
关于热修复的原理,其实网上有很多文章的讲述。但是原理都是一致的,所以实现起来差异不是很大。 在Android的ClassLoader体系中,Android中加载类都是使用PatchClassLoader和*DexClassLoader,他们有什么区别呢? 其实很容易说明: *DexClassLoader是可以用于加载apk文件或jar文件的。 *PathClassLoader只能加载dex格
2017-02-24 21:01:30
369
原创 Android 热修复 使用Demo
Fix 框架 使用步骤和Demo 演示。 之前我们分享了fix 的导入,现在我们一起来写一个使用的demo。 关于如何导入请参考之前的文章 : http://blog.youkuaiyun.com/iehshx/article/details/55101568新建Android Studio 项目 FixDemo,导入之前的配置。 由于我是第一次使用所以之前没有发布过版本,所以在配置的时候需要注意
2017-02-14 18:46:29
632
原创 Android 热修复
Iehshx Fix的使用步骤 一、导入Iehshx Fix框架 首先我们需要进入到应用的build.gradle文件中添加fix到项目中。 classpath ‘com.iehshx:fix:1.0.0’ buildscript { repositories { jcenter() } dependencies {
2017-02-14 16:41:36
452
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人