- 博客(96)
- 资源 (14)
- 问答 (4)
- 收藏
- 关注
原创 android11关机安卓充电的UI定制化
安卓关机状态下有两种充电模式:uboot-charge和android-charge,可通过dts配置使用哪一种充电模式。dts配置中uboot-charge和android-charge是互斥的,如下配置的是开启android-charge:本片主要讲解安卓充电的定制化。
2025-03-29 18:38:55
939
1
原创 android系统的overlay机制
在android产品定制开发中,有时需要对不同的产品使用不同的资源配置,这时候就需要用上overlay机制了
2025-02-09 23:14:42
416
原创 android11实现代码进入分屏、代码退出分屏功能
自android7开始,分屏功能官方就已经实现了。Android11的操作方式是点击rescent键,选择一个应用进入分屏,然后系统会自动在下半屏显示另一个应用。然后客户是客制化的系统,没有任务栏和状态栏。所以需要开发通过代码进入分屏的方式,并且客户希望可以自由开启一个应用进入上分屏或下分屏,自由退出上分屏或下分屏。这些原生Android11都是没有的,只能新开发。
2024-11-26 00:21:30
962
原创 android 11添加切换分屏功能
自Android 7开始官方就支持分屏显示,但没有切换分屏的功能,即交换上下屏幕。直到Android 13开始才支持切换分屏,操作方式是:分屏模式下双击中间分割线就会交换上下屏位置。本文的目的就是在Android 11上实现切换分屏的功能。
2024-11-25 22:55:09
1181
2
原创 Android在framework层添加自定义服务的流程
可能有人会问,现在都2024了怎么还在用android4版本,早都过时了。确实,现在最新的都是Android13、Android14了,不过我这里主要是用于demo的演示学习使用,只要整个的流程掌握了,哪个版本的流程都是大同小异;再一个就拿Android13来说,源码100G多非常庞大,代码clone、源码编译都是很慢的,而Android4.1源码才4G多,编译运行就快多了,省时省力。仿照系统中现有服务的编写方式,新增服务需要编写aidl接口(也就是提供什么服务),在frameworks/base/core
2024-07-06 18:27:09
1371
原创 android AIDL使用demo
Android 接口定义语言 (AIDL) 类似于其他 IDL:它允许您定义客户端和服务使用进程间通信 (IPC) 进行相互通信时都认可的编程接口
2024-06-28 12:28:59
1208
原创 android自定义Drawable显示Gif
Movie有长、宽以及时长,感觉像是表达电影的一个类。不过gif的原理类似电影,故也能应用加载gif,然后播放gif。为了使用方便,就直接吧这个功能做成了一个自定义drawable-GifDrawable。GifDrawable即可以加载res资源文件,也可以从加载输入流,所以使用方便。因为比较简单,故直接上源码不多说了。后面发现glide自带gif显示功能,功能更强大方便,所以还是推荐大家用glide显示gif吧。大家好,最近项目中需要用到gif动画显示,所以就着手研究了下gif的动画显示。......
2022-08-28 22:10:49
1362
原创 Android自定义控件实战——滚动选择器PickerView续
最近做项目,遇到一个需要实现滚动选择的需求。以前做过一个自定义实现滚动选择的view(https://blog.youkuaiyun.com/u014763302/article/details/53104814),但发现不大符合需求。本着快速实现的目标,就找到了这为大神的博客(https://blog.youkuaiyun.com/zhongkejingwang/article/details/38513301),看了下实现的差不多了,就拿过来用,顺便加了一些小功能,并对存在的bug做了一些优化,特记录。目前需求:上下可循
2020-08-22 18:36:01
1795
原创 记录本人对网络请求和接收的一些疑问
疑问始于对okhttp文件上传和文件下载的进度的实现时产生。为什么okhttp能够驾驭上传大文件呢?文件上传过程中如何掌控文件的上传进度呢?okhttp发送请求时request时如何封装的呢?okhttp接收response的的底层时如何接收的呢?带着这些疑问,本人特意去翻看okhttp的代码实现。本文特此记录看代码过程中得到的一些答案。request发送请求的过程细节过程一:先发送heade...
2020-02-14 11:13:39
182
原创 仿微信朋友圈TextView点击查看更多
代码如下package com.hai.test.widget;import android.content.Context;import android.text.Layout;import android.text.Spannable;import android.text.SpannableStringBuilder;import android.text.TextUtils;...
2019-12-26 13:58:29
1000
原创 Android开发高手课笔记
01 | 崩溃优化(上):关于“崩溃”那些事儿anr检测:FileObserver 监听 /data/anr/traces.txt 的变化(5.0以后没有权限使用)ANR-WatchDogSafeLooperBlockCanarynative崩溃日志捕获:Breakpad03 | 内存优化(上)VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的...
2019-08-15 15:24:28
459
原创 C指针难点解析
序言学习 C 语言的指针既简单又有趣。通过指针,可以简化一些 C 编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。所以,想要成为一名优秀的 C 程序员,学习指针是很有必要的。内存地址在了解c指针之前,我们先来了解下内存地址。计算机程序运行时的数据一般保存在内存(ram)中,为了存取内存中的数据,系统会对内存进行编址,然后程序就可以按地址存取数据。c语言中,每一个变量...
2019-06-25 23:39:38
1263
原创 adroid屏幕适配方案整理
在学习绍文大神写的Android开发高手课时,在拓展看到了一些关于Android屏幕适配写的很好的文章,收益匪浅,故整理收集下来。今日头条适配方案:https://mp.weixin.qq.com/s?__biz=MzI1MzYzMjE0MQ==&mid=2247484502&idx=2&sn=a60ea223de4171dd2022bc2c71e09351&s...
2019-05-24 17:10:17
263
1
原创 教你用PopupWindow实现半屏透明功能
需求项目中UI为了实现界面的新颖独特,会设计各式各样的优美界面。比如下面的这个效果图,就是我最近遇到的看到这个效果的第一眼,你想到的是什么方法实现。网友实现看到此效果的第一眼,我想到的是不大好实现。因为我曾经看过此效果的demo,demo实现方法过于复杂,因此我首先咨询了网友,网友的回答果然让我失望:popupWindow,然后popupWindow之外窗口添加透明色。如上网友的实现...
2019-05-15 17:59:22
2881
2
原创 android jni开发指南
开发环境说明Android Studio 3.3.2java version “1.8.0_201”NKD 19.2.5345600com.android.tools.build:gradle:3.3.2工具准备这里假设读者是一位有一定经验的android开发者,对Android开发环境的搭建有一定的经验,为此简单的说一下IDE的配置。在AndroidStudio开发工具的基础上,...
2019-04-17 10:22:23
3456
原创 androidStudio Java注释模板
1,设置File Header/*** fileDesc* Created by ${USER} on ${DATE}. * Email h1132760021@sina.com*/进入设置页面,如图2,设置Live Templates For Java/*** fileDesc* Created by $user$ on $date$. * Email h1...
2019-03-19 15:38:27
552
转载 Android微信智能心跳方案
前言:在13年11月中旬时,因为基础组件组人手紧张,Leo安排我和春哥去广州轮岗支援。刚到广州的时候,Ray让我和春哥对Line和WhatsApp的心跳机制进行分析。我和春哥抓包测试了差不多两个多礼拜,在我们基本上摸清了Line和WhatsApp的心跳机制后,Ray才告诉我们真正的任务——对微信的固定心跳进行优化,并告诉我们这不是一件容易的事情。于是我和春哥开始构思第一个方案,我们开始想用统计的方...
2019-03-08 15:14:16
481
转载 调查 RAM 使用情况
开发 Android 应用时,请始终注意您的应用使用了多少随机存取存储器 (RAM)。尽管 Dalvik 和 ART 运行时会执行例行垃圾回收 (GC),您仍然需要了解应用何时以及在哪里分配和释放内存。为了提供稳定的用户体验,使 Android 操作系统能够在应用之间快速切换,请确保您的应用在用户不与其交互时不会消耗不必要的内存。即使您在开发过程中遵循了管理应用的内存的所有最佳做法,您仍然可能...
2019-02-19 10:43:00
1088
原创 简析okhttp运用的拦截器模式
序言:在软件工程中,一个好的软件作品不仅表现在功能齐全、界面美观、操作简单易上手等方面,还在于软件的实现方式、代码结构、功能扩展和后期维护。优秀的软件就好比结实耐用又好看的房子,地基扎实,框架结构坚固同时预留有足够合理的门、窗、水、电以及后期的加层装修等位置;优秀的软件界面美观、操作简单,功能齐全,同时预留有足够的可配置性,可扩展性,可维护性等等功能。相信近期从事Android开发的大神们应该...
2018-11-13 11:22:24
347
原创 记录Android app双进程的内存理解
序言前段时间实际项目开发中遇到一个很奇怪的空指针问题,根据app的奔溃日志定位到源码,发现对象在使用前已经初始化了,为何还会报空指针异常呢,感觉此bug不应该出现。然后就一遍遍的问题排查,始终无头绪,后面偶然想起app是双进程运行,按正常的逻辑这个bug不应出现,那会不会和双进程有关呢。于是就立马写demo看看。问题重现这里先假设大家都是Android开发者,因此这里只讲解重要的流...
2018-07-05 15:08:16
905
原创 App重启后Activity中的Fragment报View空指针异常
问题重现app3个activity,A->B->C,A是启动页,B是主页(B中的FragmentTabhost包含4个Fragment:a、b、c、d),C是登录页。停留在B中的d Fragment页时弹出热更新提示,点击重启app页面空白1秒后重走B生命周期,然后瞬间跳到C,C登录后发现B中的a Fragment报View空指针异常。 补充:B中的d Fragment需要...
2018-02-27 16:56:53
2098
原创 androidstudio tool window 的显示、隐藏、固定
在使用Androidstudio开发Android时,有时我们可能会不经意的关闭了某个tool Window,或是让窗口不贴边了,导致窗口恢复不了原来的样子,这是一件很糟糕的事情。我已经遇到多次了,由于第一次遇到的时候,解决了但没有记录下解决方法,导致后面遇到的时候又得重新折腾很久,因此今天特意把它写下来。下面以AndroidStudio preview窗口为例来说明问题:假使previe
2017-08-28 14:51:29
7133
4
原创 Volley源码分析
Volley cacheDir=com.hai.cache RequestQueue DiskBasedCache cacheDir BasicNetwork HurlStack ExecutorDelivery(new Handler(Looper.getMainLooper() RequestQueue AtomicInteger mSequenceGen
2017-05-22 14:45:01
402
原创 OkHttp源码分析
OkHttpClient通过Builder建立一个实例对象, Request通过Builder建立一个请求对象 OkHttpClient根据Request new一个RealCall RealCall enqueue进队列new一个AsyncCallAsyncCall被添加到runningAsyncCallsexecutorService执行AsyncCall(也即Asyn
2017-05-22 14:42:18
443
原创 Retrofit源码分析
RetrofitPlatform platform=Platform.get()List adapterFactoriesExecutorCallAdapterFactorycallbackExecutor=MainThreadExecutorList converterFactories BuiltInConvertersGsonConverterFactory.cr
2017-05-22 14:40:10
373
原创 Android自定义View实现简单的折线图、柱状图
package com.hrules.charter.demo.widget;import android.animation.ValueAnimator;import android.content.Context;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.
2017-04-21 15:03:23
1897
原创 Android DashPathEffect的简单使用(如实线虚线)
首先看一个自定义view实现的实线效果图,实现很简单,就是用paint与path结合使用就可以做到了,由于代码过于简单,直接贴源码布局<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
2017-04-17 15:28:43
11591
2
原创 从HandlerThread源码理清handler、looper与messageQueue之间的关系
前端时间看到一篇关于HandlerThread 的介绍博文,感觉写的不错;再由于近段时间遇到的一个面试题:looper是如何与线程绑定到一起的?当时回答的很不流畅,因此回去之后又跟着源码分析了一边这三者之间的关系,并以此记录下来(sdk以Android-24为例)。首先看一段简短的代码 HandlerThread handlerThread = new HandlerThread
2017-04-05 17:49:52
493
原创 Android Tinker热修复集成解析
首先解释下tinker是什么,官方如是解释:Tinker是微信官方的Android热补丁解决方案,它支持动态下发代码、So库以及资源,让应用能够在不需要重新安装的情况下实现更新。当然,你也可以使用Tinker来更新你的插件。看到这,应该知道它的厉害了吧,支持动态下发代码、So库以及资源,第二它已经正式运用于有7、8亿用户的微信上了;比起阿里的andifx只能用作方法替换,这太强大了;因此作为app
2017-04-03 14:49:05
1061
原创 android FragmentTabHost的使用技巧及注意事项
目前主流的app主页都是由几个tab页组成,因此我们开发app的时候一般都会涉及到主页tab的切换实现。常用的主页tab切换实现有viewpage和FragmentActivity组合,FragmentTransaction的add、replace、remove、hide和show方法,以及Android官方的FragmentTabHost。看标题,这次我们只讲FragmentTabHost的ta
2017-02-24 11:50:57
4535
android/kernel/goldfish.git/refs/heads/android-goldfish-2.6.29
2024-01-15
android / kernel / goldfish / refs/heads/android-goldfish-3.4
2024-01-11
app.asar for staruml3.2
2020-04-06
depot_tools
2019-02-19
apk反编译tools
2016-06-05
android Scroll及GestureDetector的简单使用
2015-12-06
求没root机器的重启解决方案
2021-08-31
如何实现textview在一定宽度内自适应宽度
2019-06-29
如何让textview内容居中,包裹内容,长=宽
2017-07-10
如何配置tomcat把访问日志也输出到tomcat命令窗口
2016-01-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人