1.概述 Android4.4以上开始使用ART虚拟机,在此之前我们一直使用的Dalvik虚拟机,那么为什么Google突然换了Android运行的虚拟机呢?答案只有一个:ART虚拟机更优秀。 2.Dalvik vs …
标签:Android
Android底层和中间层共同学习系列之android键盘映射
介绍 功能 键布局映射 键映射的选择 文件格式 &nb…
SharedPreference使用:app首次安装获取遇到的一个小坑
场景: 保存用户信息,app使用的是MVP结构,P里面获取的用户信息,并用SharedPreference保存,然后登陆成功后跳转到首页在用SharedPreference重新获取相应的用户值;当清楚完该应用的本地的所有…
JNI 基础 - JNIEnv 的实现原理
一.JNI 开发的一般流程 在 windows 系统上面我们经常能看到很多类似于 xxx.dll 的文件,在做 android 开发的时候我们能看到很多 xxx.so 的文件。这些都是啥呢?其实就是用 c 和 c++ 实…
利用Python实现Android替换内容批量打包
工作中有一个定制需求:根据不同的用户需求,需要替换APP内的图片,以及部分代码里面的配置信息,打出不同的apk交给客户使用。如果只用生成少量的apk,那么可以将所有图片放入资源文件夹然后根据服务端的信息来进行指定显示,但…
Android:OkHttp/Retrofit2配置(日志/拦截器/https证书)
配置日志 // Gradle中需要添加依赖: // implementation 'com.squareup.okhttp3:logging-interceptor:3.12.1' if (BuildConfig.DEB…
Gradle入门记录(持续更新ing)
先认认项目主要文件作用 项目最外层 build.gradle(gradle版本修改,配置公共配置的地方) // Top-level build file where you can add configuration /…
JNI 基础 - Android 共享内存的序列化过程
1. 进程间的通信方式有哪些 2. binder 和 socket 通信的区别有哪些 3. Android 为什么在大部分场景下用 Binder 进行进程间通信 4. Serializable 和 Parcelable …
面试解惑:没有技术深度的苦恼
最近有一位读者去今日头条面试Android开发,这位读者师出名门(BAT中的一家公司),是有十年的软件开发经验的高级Android工程师,但今日头条却以没有技术深度拒绝了他。 昨天早上,我在给他做模拟面试的时候也发现了这…
android权限申请Permission
前言 Android权限申请之前写过,然后总结了下,但是后来忘记记录了,导致我再需要用的时候又得重来一次,很郁闷,这次就做个记录吧 本文参考我得另篇文章 6.0动态加载权限用PermissionGen 这篇文章主要讲解以…
Java 浅析三大特性之一封装
在说Java 三个特性之前,我们先了解一下什么是面向对象,以及为什么Java是面向对象的语言。 面向对象是区别于面向过程的一种编程的思想。我们可以通过这个例子冰箱装大象的例子来了解一下面向对象与面向过程的区别。 想必通过…