Andorid Exploration
文章平均质量分 82
这是我对于Android的探索,目前是写一些比较熟悉的东西和比较有把握的东西。
Notzuonotdied
一个人优秀的可怕的三个迹象:高度的自律,近乎疯狂的努力;对自己好,学会不计代价的投资自己;相信自己,不在乎他人的眼光。
展开
-
Android MultiDex分析
前言我先占个坑吧,暂时不想分析了。MultiDex在install的时候,过久会导致ANR……这个问题经常见于低端机上。原理类加载机制系列3——MultiDex原理解析Android MultiDex原理及实现记录MultiDex工作原理分析和优化方案解决方案MultiDex加载方案,采用谷歌的分包方案,防止在主线程加载second dex的时候,耗时太久而产生ANR...原创 2019-05-07 20:36:37 · 279 阅读 · 0 评论 -
Android Matrix matrix-resource-canary-android源码分析
前言上周有一个任务就是要我分析内存中重复的Bitmap的问题的,就是这个Android CMake错误解决的续集。忙于其他的问题和五一放假,现在才有时间重新看看这个问题是否可以用Matrix解决!╮(╯▽╰)╭这个问题貌似有点难搞(在不考虑Hook Bitmap接口),不过幸好微信的老哥开源了一个微信的APM工具,里面包含了当Activity销毁的时候发生内存泄漏dump内存中的数据的mat...原创 2019-05-07 19:21:26 · 744 阅读 · 0 评论 -
Android CMake错误解决
前言这几天的任务是帮忙分析看看内存中的Bitmap的使用情况,同事推荐了腾讯Tencent的Matrix框架。【WIKI直通车】问题梳理与解决当我开心的将源码拉下来编译./gradlew build的时候,Android Studio给我来了一波错误的洗礼!!!╮(╯▽╰)╭(base) ➜ matrix-android git:(master) ✗ ./gradlew buildF...原创 2019-04-24 19:35:05 · 2731 阅读 · 1 评论 -
Android Sublime源码阅读姿势
前言最近编译了Android7.1.1的源码,将Android 7.1.1的源码拿来学习。Android 编译Android 7.1.1源码之前听说IDEA看源码很方便,不过由于Android 7.1.1导入到IDEA中需要编译一遍,才会生成idegen.jar文件,不然都没法执行make idegen && development/tools/idegen/idegen...原创 2019-04-17 20:25:20 · 1812 阅读 · 0 评论 -
Android 编译Android 7.1.1源码
前言最近这阵子又回来爱奇艺实习了,实习的任务是分析爱奇艺的APM平台上的卡顿栈的问题。爱奇艺的APM平台上的卡顿栈都是系统栈,很少有比较明显的栈。因此,只能从源码开始逐层分析。通过分析源码的逐层调用,来判断是否是因为主线程(UI线程)持有子线程的锁导致卡顿,亦或者是由于频繁的进行IPC导致,或者是因为读写竞争导致的问题……对于源码的分析有利于快速的定位到问题所在,当然,可以借此机会,深入了解A...原创 2019-04-10 19:52:58 · 2937 阅读 · 1 评论 -
Android Gradle
前言 Android应用程序使用开源的Gradle构建系统来构建。Gradle是在Java世界中广泛使用的、易定制化的现代化API。Android的Gradle插件针对Android应用程序添加了大量的特性,包括构建类型(build type)、定制(product flavor)、签名管理(signing configuration)、库项目(library project)等。学...原创 2018-01-19 17:39:24 · 729 阅读 · 0 评论 -
Android Git简易教程
查看篇查看git仓库的提交记录:git log参数说明: git log --oneline 单行显示git log信息git log --decorate 修饰性的显示,主要是可以查看分支信息注意:git log中commit fbac9424348189e46175316396d7659f726157ed的commit后的前六位是当前log的标志,用于定位,如果需要回滚,可以使用...原创 2018-01-28 13:28:53 · 447 阅读 · 0 评论 -
Android Realm Gradle3.0以上出错解决方法
前言想在Android Studio3.2中使用Realm,结果发现gradle3.0以上不支持APT了。需要转换下才可以使用,特意将解决的方法记录下来。问题描述按照正常,我们会这样子配置:buildscript { repositories { …… } dependencies { classpath "com.android.t...原创 2019-01-12 22:40:09 · 2405 阅读 · 0 评论 -
Android 图片三级缓存LruCache实现
前言这是我面试时候遇到的一个问题,虽然之前了解过,但是并没有自己实现过。当时面试官叫我5分钟内设计并实现出来。当时比较嫩,直接说不会了,面试官有点尴尬。虽然已经成功拿到了offer了,但是还是要将不是很会的东西补补。设计过程...原创 2019-02-03 18:47:28 · 664 阅读 · 0 评论 -
Android Activity介绍
Activity生命周期状态说明 状态 说明 活动状态 当Activity在用户界面中处于最上层,完全能被用户看到,能够与用户进行交互,则这个Activity处于活动状态。 暂停状态 当Activity在界面上被部分遮挡,该Activity不再处于用户界面的最上层,且不能与用户进行交互,则这个Activity处于暂停状态。 停止状态 ...原创 2018-01-09 10:51:38 · 796 阅读 · 0 评论 -
Android 服务Service开发
前言 服务是Android中的一个应用,它在后台运行,不需要与用户有任何的交互。例如,当使用一个应用的时候,你希望同时可以在后台播放音乐。这时,在后台播放音乐的代码不需要与用户交互;因此,它可以作为一个服务运行。同时,当应用不需要提供用户界面(UI)的时候,服务也是理想的选择。对于这种情况由一个很好的示例应用是持续记录设备的地理坐标。这时,可以编写一个服务在后台运行。Service的分类本地服务原创 2017-12-24 15:16:30 · 496 阅读 · 0 评论 -
Content Provider与SQLite结合使用
虽然推荐使用数据库保存结构化的复杂数据,但是数据共享是一个挑战,因为数据库只允许创建它的应用访问。在Android中,推荐使用content provider方法在不同包之间共享数据。content provider可以被视为一个数据仓库。它如何存储数据与应用如何使用它无关。本例将讲解Content Provider与SQLite结合使用。原创 2017-12-23 22:27:13 · 2303 阅读 · 0 评论 -
Android 消息机制
前言Android的消息机制简单阐述,无源码分析,需要的自己去附录里面看。基础概念概念说明Android的消息机制主要是指Handler的运行机制,Handler的运行需要底层的MessageQueue和Looper的支撑。HandlerAndroid消息机制的上层接口。Handler的使用过程很简单,通过它可以轻松地将一个任务切换到Handler所在的线程中去...原创 2019-01-08 09:21:21 · 163 阅读 · 0 评论 -
Android 使用Java 8特性
改变习惯的关键在于,在维持原先的暗示信号和奖赏的同时,以新的惯例行为代替旧的惯例行为。 翻译自:Use Java 8 language features简介 公告:Jack toolchain目前已经被弃用了。您可以继续使用它,或者尝试使用Android Studio最新的版本来使用Java 8的新特性。 Android支持所有的Java 7的特性和部分的...翻译 2017-08-12 18:51:23 · 1048 阅读 · 1 评论 -
干货!我开发 Android 是如何界面设计的
干货!我开发 Android 是如何界面设计的当年,随着 Android 5.0 的面世,Google 也带来了全新的设计规范 Material Design 。第一次看到 Material Design 的应用,简直是太好看了,有没有!下面呢,我将主要介绍一下,我在开发时常用到的一些网站界面设计dribbble第一个就不得不提大名鼎鼎的 dribbble,上面都是由众多国内外优秀的设计师或转载 2017-10-01 16:05:30 · 1115 阅读 · 0 评论 -
Android Notification使用
Android Notification使用原创 2018-01-15 16:26:31 · 1403 阅读 · 1 评论 -
Android 蓝牙开发
自从API level5中首次引入了蓝牙之后,Android支持蓝牙已经很长时间了。这种蓝牙被称为传统的蓝牙。从API 18开始,开发者可以使用低功耗蓝牙(Bluetooth low energy,简称BLE),或者Bluetooth Smart。原创 2017-12-26 16:50:16 · 797 阅读 · 0 评论 -
Android NFC开发
近场通信(NFC)是一种NXP半导体公司提出来的被动技术,它可以在支持NFC的设备上使用“tag”。它是一种有效距离非常小的无线技术,这个距离大概是4cm,但是也可以到10cm,这取决于设备的无线电波和tag的大小。不像蓝牙的Beacon,NFC tag不需要电源。这使它在半永久的地方使用非常合理,而且可以作为一个媒介来使任务自动化,或者把信息分发到一系列的位置。原创 2017-12-27 11:39:47 · 673 阅读 · 0 评论 -
Android 优化数据容器
Android中由几个数据容器,你可以使用它们来生成更高的内存性能的应用。原创 2017-12-27 12:18:03 · 472 阅读 · 0 评论 -
Android 开发中Static的使用
Android 系统开发,看过 Android 一些经典的应用,代码里面 static 类型的变量并不是经常使用,但在开发中 static 确实非常好用,跨 activity 没问题,跨进程应该都可以吧。 这个 static 有什么缺点和优点,我们到底应该如何的规范使用呢? 补充下,主要想问的是:有什么理由使我们在一些情况下不推荐用static变量?转载 2018-01-17 09:56:33 · 1767 阅读 · 0 评论