- 博客(24)
- 收藏
- 关注
原创 Android 面试技术整理(10)-优秀三方库源码
优秀三方库源码1.网络底层框架:OkHttp 实现原理2.网络封装框架:Retrofifit 实现原理3.响应式编程框架:RxJava 实现原理4.图片加载框架:Glide 实现原理5.事件总线框架:EventBus 实现原理6.内存泄漏检测框架:LeakCanary 实现原理7.依赖注入框架:ButterKnife 实现原理8.依赖全局管理框架:Dagger2 实现原理9.数据库框架:GreenDao 实现原理1.网络底层框架:OkHttp 实现原理https://www.jianshu.com/p/
2020-10-13 10:13:48
296
原创 Android 面试技术整理(9)-Android Framework 相关
Android Framework1、Android 系统架构1.应用程序2、Java API 框架3、系统运行库1原生 C/C++ 库2Android Runtime4、硬件抽象层 (HAL)5、Linux 内核2、View 的事件分发机制?滑动冲突怎么解决?3、View 的绘制流程?4、跨进程通信Android 中进程和线程的关系?区别?如何开启多进程?应用是否可以开启 N 个进程?为何需要 IPC?多进程通信可能会出现的问题?Android中IPC方式、各种方式优缺点,为什么选择Binder?Bind
2020-08-19 19:47:45
975
原创 Android面试整理(8)-性能优化
性能优化性能优化1.启动 app 黑白屏优化2.稳定——内存优化避免发生内存抖动的几点建议:(1)Memory Monitor 工具:(2)LeakCanary 工具:(3)Android Lint 工具:3.流畅——卡顿优化(1)布局优化(2)启动优化(3)优化工具4.节省——耗电优化(1)计算优化。算法、for 循环优化、Switch..case 替代 if..else、避开浮点运算。(2)避免 Wake Lock 使用不当。(3)使用 Job Scheduler 管理后台任务。5.安装包——APK 瘦
2020-08-15 15:42:13
752
原创 Android面试整理(7)-架构设计和设计模式
架构设计和设计模式1.谈谈你对 Android 设计模式的理解2.MVC MVP MVVM 原理和区别3.你所知道的设计模式有哪些?4.项目中常用的设计模式5.手写生产者/消费者模式6.写出观察者模式的代码7.适配器模式,装饰者模式,外观模式的异同?8.用到的一些开源框架,介绍一个看过源码的,内部实现过程。9.谈谈对 RxJava 的理解1.谈谈你对 Android 设计模式的理解从Android代码中来记忆23种设计模式https://www.jianshu.com/p/1a9f571ad7c02
2020-08-15 14:50:51
712
原创 Android面试整理(6)-插件化、模块化、组 件化、热修复、增量更新、Gradle
插件化、模块化、组 件化、热修复、增量更新、Gradle1.对热修复和插件化的理解2.插件化原理分析3.模块化实现(好处,原因)4.热修复、插件化5.项目组件化的理解6.描述清点击 Android Studio 的 build 按钮后发生了什么7.彻底搞懂 Gradle、Gradle Wrapper 与 Android Plugin for Gradle 的区别和联系1.对热修复和插件化的理解热修复和插件化https://blog.youkuaiyun.com/weixin_34122810/article/de
2020-08-13 19:05:45
298
原创 Android面试整理(5)-数据库
数据库1、Sqlite 升级,增加字段的语句2.数据库框架对比和源码分析2.1、GreenDao 源码分析2.1、Room 源码分析3、数据库的优化4、数据库数据迁移问题5、Sqlite 常见异常1、Sqlite 升级,增加字段的语句Sqlite升级时向已有表中增加字段https://blog.youkuaiyun.com/qq_26287435/article/details/825855972.数据库框架对比和源码分析ORMLite:https://github.com/j256/ormlite-andr
2020-08-13 18:29:07
532
原创 Android面试整理(4)-网络和安全机制
网络和安全机制1、网络框架对比和源码分析VolleyOkHttpRetrofit2、自己去设计网络请求框架,怎么做?3、网络请求缓存处理,okhttp 如何处理网络缓存的4、从网络加载一个 10M 的图片,说下注意事项5、TCP 的 3 次握手和四次挥手1、网络框架对比和源码分析Volley特点:基于 HttpURLConnection封装 Url 图片加载框架,支持图片加载有缓存Activity 和生命周期的联动,Activity 结束时取消在此 Activity 中调用的所有网络请求场
2020-08-13 14:56:31
842
原创 Android面试整理(3)-图片相关
图片相关1、图片库对比1.1PicassoGlideFresco2、LRUCache 原理3、图片加载原理4、自己去实现图片库,怎么做?5、Glide 源码解析1、图片库对比https://juejin.im/post/5c9e0feb6fb9a05e2b23ed4d1.1PicassoPicasso 毕加索 SquarePicasso 没有实现本地缓存功能,交给了 Square 的另外一个网络库 okhttp 去实现,这样的好处是可以通过请求 Response Header 中的 Cache-
2020-08-13 08:59:03
443
原创 Android面试整理(2)-java 深入源码级的面试题
java 深入源码级的面试题1、哪些情况下的对象会被垃圾回收机制处理掉?1.1 哪些对象可以被看做是 GC Roots 呢?1.2 对象不可达,一定会被垃圾收集器回收么?2、讲一下常见编码方式?3、utf-8 编码中的中文占几个字节;int 型几个字节?4、静态代理和动态代理的区别,什么场景使用?5、Java 的异常体系6、谈谈你对解析与分派的认识。7、修改对象 A 的 equals 方法的签名,那么使用 HashMap 存放这个对象8、Java 中实现多态的机制是什么?9、如何将一个 Java 对象序列化
2020-08-12 18:39:29
251
原创 Android面试整理(1)-Java 基础知识点
Java 基础知识点面试专题目录Java 基础知识点面试专题1、java 中==和 equals 和 hashCode 的区别2、int、char、long 各占多少字节数3、int 与 integer 的区别4、谈谈对 java 多态的理解5、String、StringBuffer、StringBuilder 区别6、什么是内部类?内部类的作用7、抽象类和接口区别7.1、抽象类的意义7.2、抽象类与接口的应用场景7.3、抽象类是否可以没有方法和属性?7.4、接口的意义8、泛型中 extends 和 su
2020-08-12 18:25:53
222
原创 Android 清空系统wifi记录
Android 系统记录wifi配置的在只要删除wpa_supplicant.conf。重启就行了。好记性不如烂笔头,记录一下。 **如果这边文章对你有帮助。可以请我喝杯咖啡** ...
2020-03-05 09:48:45
2261
1
原创 [九鼎RK3399Pro] Android 8.1替换系统输入法
系统原来的输入法不带中文输入。所以下载带中文的Google输入法(好处是不带广告)。下载地址方式:原理1、需要将Google输入法内置到系统里面。2、将系统的输入法设置为Google输入法。内置Google输入法参考vendor/rockchip/common/apps/目录下面的第三方APP。1、新建vendor/rockchip/common/apps/GoogleInputM...
2020-03-04 10:25:23
819
原创 [九鼎RK3399Pro] Android 8.1添加一个系统服务
很多时候需要在系统里面开一个服务,为某些App提供特殊的支持。所以记一下在系统里面添加服务器的基本套路。方便以后做参考。文章是参考别人的,今天正好翻到这段代码,但是记不起来,在哪里参考的。diff --git a/frameworks/base/Android.mk b/frameworks/base/Android.mkindex 3018c4e..555267d 100755--- ...
2020-03-02 16:20:27
780
原创 [九鼎RK3399Pro] Android 8.1默认自动给APP普通权限
由于客户的APP是无人管理的,不能让人去点击获取权限。所以在系统城给了所有权限。思路:在APP安装的时候,监听安装时间,自动给所有权限。当然也考虑不能所有的APP都能获取自动权限。diff --git a/frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java b/framewor...
2020-03-02 16:06:06
1932
原创 [九鼎RK3399Pro] Android 8.1 系统定制给用户root权限
由于有些APP需要获取root权限。源码修改diff --git a/build/core/main.mk b/build/core/main.mkindex e3fb6fb..0bb9ef2 100644--- a/build/core/main.mk+++ b/build/core/main.mk@@ -242,11 +242,11 @@ enable_target_debugg...
2020-03-02 15:55:30
3097
6
原创 [九鼎RK3399Pro] Android 8.1 取消usb权限弹窗,直接默认给权限
由于前段时间公司的平板接了一个USB设备,但是每次要弹框请求USB权限,客户反映很不好。所以就在系统层,把权限默认给了。系统是8.1的,其他系统思路应该也是一样的。思路是,在弹框的一瞬间,自动给权限。就是先找到弹框的代码,在弹框启动的时候执行点击确认的代码。frameworks/base/packages/SystemUI/src/com/android/systemui/usb/UsbPer...
2020-03-02 15:30:19
1365
原创 [九鼎RK3399Pro] Android 8.1定制系统导航栏和状态栏显示和隐藏可控制
我们的app跑在RK3399Pro上面,是放在一个公共场合使用,所以把底部的 返回,HOME,MENU键都隐藏掉,并且上部导航栏下拉功能也要取消。代码我是参考Firefly的代码写的。实现了一下功能frameworks层添加三个功能1.导航栏添加关机功能.2.导航栏支持屏幕横竖屏切换功能.3.导航栏支持动态隐藏和显示导航栏,永久关闭导航栏在framework层提供借口供外部使用不多...
2019-11-13 11:40:04
4836
7
原创 [九鼎RK3399Pro] Android 8.1 修改系统默认时区
build/tools/buildinfo.sh@@ -60,4 +60,5 @@ if [ -n "$BUILD_THUMBPRINT" ] ; thenfiecho "ro.build.characteristics=$TARGET_AAPT_CHARACTERISTICS"+echo "persist.sys.timezone=Asia/Shanghai"echo "# end...
2019-11-13 10:40:58
1903
原创 [九鼎RK3399Pro] Android 8.1 修改系统默认语言为中文
build/target/product/full_base.mk@@ -43,7 +43,7 @@ PRODUCT_PROPERTY_OVERRIDES := \ro.config.notification_sound=pixiedust.ogg# Put en_US first in the list, so make it default.-PRODUCT_LOCALES :=...
2019-11-13 10:29:58
732
原创 [九鼎RK3399Pro] Android8.1 编译以及环境配置
1.前期准备1.1硬件以及软件配置Ubuntu 16.04 系统(可使用真机也可使用虚拟机,虚拟机已经实测)Ubuntu 16.04电脑配置:CPU:4核级以上。内存:12GB及以上。(实际在编译过程中使用8G内存编译显示内存不够,改成12G才编译通过)显卡:无要求存储:200G。1.2虚拟机安装Ubuntu虚拟机安装ubuntu :https://baijiahao.baid...
2019-11-13 10:13:32
2399
原创 Ubuntu16.04安装docker详细
本篇主要翻译一下官方指导ubuntu下安装docker指南,方便查阅,官方指导网址:https://docs.docker.com/engine/installation/linux/ubuntulinux/ 。这篇文章主要指导你去安装使用Docker-managed发布包及其安装机制。使用这些包确保你获得最近的docker官方发布版本。如果你需要安装使用Ubuntu-managed包,查阅Ub...
2019-11-12 17:01:18
358
原创 linux和docker常用指令
一、常用Linux 命令ls -a(同时列出隐含文件), -l(输出一个比较完整的格式,除每个文件名外,增加显示文件类型、权限、硬链接数、所有者名、组名、大小(byte)、及时间信息-----简化为 ll)mkdir 新建目录 例:mkdir test 命令会在当前目录下建立一个名为“test”的新目录touch 创建文件 例:touch test/readme.tx...
2019-11-12 15:56:09
231
原创 android项目在不装opencvmanager.apk情况下,直接使用
前一段时间公司项目要用到OpenCV的东西做图像处理,但是一般都要安装OpenCV的apk包才能正常使用(估计是要导入那些os库)但是老板认为自己的apk安装之后,还要装别的apk,显得很菜,要求不安装OpenCV的apk没有办法,只能安装老板说的来做.(只是想吐槽一下)自己以前在上大学的时候接触过一点点的C++.在网上找了很多资料,OpenCV使用C代码来写的
2015-11-18 18:21:26
2865
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人