Android项目实战(六十一):pdf文件用图片方式预览
前言:
Android不支持pdf的在线预览,网上有多种预览pdf的实现方式,点此查看总结
这里实现一种先下载pdf文件到本地,再将文件转成图片显示的的操作
一个工具类:
import android.app.Application;
import android....[2020/12/21]
Android各版本迭代改动与适配集合
前言
今天分享的面试题是:
Android在版本迭代中,总会进行很多改动,那么你熟知各版本都改动了什么内容?又要怎么适配呢?
Android4.4
发布ART虚拟机,提供选项可以开启。
HttpURLConnection的底层实现改为了OkHttp。
Android5.0
ART...[2020/12/21]
发布自己的Android开源库到JCenter
简单记录一下问题
注册Bintray账号
Bintray官网
注册很简单(网页打不开的话应该是需要 ke xue shang wang),但是有一点比较坑,注册的时候需要填写邮箱,我当时注册时,QQ邮箱和网易邮箱都试过了,发现这两种邮箱都不能用于注册,其他的国内邮箱没试过,建议直...[2020/12/21]
探究 | App Startup真的能减少启动耗时吗
前言
之前我们说了启动优化的一些常用方法,但是有的小伙伴就很不屑了:
“这些方法很久之前就知道了,不知道说点新东西?比如App Startup?能对启动优化有帮助吗?”
ok,既然你诚心诚意的发问了,那我就大发慈悲的告诉你:俺也不知道??。
走吧,一起瞅瞅这个App Startup...[2020/12/21]
Android自定义View-使用BitmapShader实现圆形图片Android自定义View-使用BitmapShader实现圆形图片
前言
在软件开发过程中自定义View几乎必不可少,今天写下这篇博客记录自己学习自定义View的第一篇---利用BitmapShader做出圆形图片的效果
先上效果图
思路
整个代码主要使用了三个工具:Paint(画笔-用来绘图),BitmapShader(着色器-拉伸图片,...[2020/12/14]
Android Activity之间的数据传递【转载】 - DIY-Z
1、向目标Activity【Main2Activity】传递数据:
Intent intent=new Intent(this,Main2Activity.cla );
可传递多种类型的数据
intent.putExtra("name","张三");
intent.p...[2020/12/14]
【聊技术】在Android中实现自适应文本大小显示
本周的聊技术话题和大家说说如何在Android中实现自适应文本大小显示。
想象一下,在布局中,通常显示文本的区域大小是固定的,但是文本长度并不总是固定的。比如列表中的文章标题、界面下方的按钮文本等等。
为了尽可能让这些文字可见,传统的做法是通过文本长度设置文本大小,或者通过andro...[2020/12/14]
uniapp开发解决多次点击触发事件
1.先创建一个文件交common文件在文件下面创建一个common.js文件内容如下
处理多次点击
function dianji(fn) {
let that = this;
if (that.onoff) {
that.onoff = fals...[2020/12/14]
Android ListView使用方法以及注意事项
一、直接在布局文件中使用ListView
1、布局文件
1 <?xml version="1.0" encoding="utf-8"?>
2 <RelativeLayout xmlns:android="http: chemas.android.com/apk/...[2020/12/14]
Android 中的LayoutInflater(布局服务)
本节引言:
本节继续带来的是Android系统服务中的LayoutInflater(布局服务),说到布局,大家第一时间 可能想起的是写完一个布局的xml,然后调用Activity的setContentView()加载布局,然后把他显示 到屏幕上是吧~其实这个底层走的还是这个LayoutI...[2020/12/14]
能否让APP永不崩溃—小光与我的对决
前言
关于拦截异常,想必大家都知道可以通过Thread.setDefaultUncaughtExceptionHandler来拦截App中发生的异常,然后再进行处理。
于是,我有了一个不成熟的想法。。。
让我的APP永不崩溃
既然我们可以拦截崩溃,那我们直接把APP中所有的异常拦截了...[2020/12/14]
android studio更新gradle版本时太慢问题
打开Android Studio后,提示要更新gradle版本,点击更新后,一直卡住。
点击底部build选项卡,停止新版本gradle-6.5-bin.zip下载。可以看到新版本gradle的下载地址。
使用其他工具,下载好新版本的gradle-6.5-bin.zip
...[2020/12/14]
Android全面解析之Context机制
前言
很高兴遇见你~ 欢迎阅读我的文章。
在文章Android全面解析之由浅及深Handler消息机制中讨论到,Handler可以:
避免我们自己去手动写 死循环和输入阻塞 来不断获取用户的输入以及避免线程直接结束,而是采用事务驱动型设计,使用Handler消息机制,让AMS可以控...[2020/12/14]
Android listview
ListView是Android中最常用的控件之一,几乎所有的应用程序都会用到它,因此学会运用它很重要。下面我们从一个例子中去理解ListView的用法,先看一下我们这个例子的项目结构图
这里我们先看Fruit,FruitAdapter 和fruit_item这三个文件
Fru...[2020/12/14]
Fuchsia OS –未来的Google操作系统?
Fuchsia OS –未来的Google操作系统?
Google正在开发一个新的操作系统:借助Fuchsia OS,该技术小组放弃了Linux体系结构,转而依靠自行开发的微内核Zircon。Fuchsia 不仅可以替代台式机操作系统Chrome操作系统,而且可以替代专为移动设备设计的A...[2020/12/14]
Android之Activity启动流程详解(基于api28)
前言
Activity作为Android四大组件之一,他的启动绝对没有那么简单。这里涉及到了系统服务进程,启动过程细节很多,这里我只展示主体流程。activity的启动流程随着版本的更替,代码细节一直在进行更改,每次都会有很大的修改,如android5.0 android8.0。我这里的...[2020/12/14]
Android全面解析之Window机制
前言
你好!
我是一只修仙的猿,欢迎阅读我的文章。
Window,读者可能更多的认识是windows系统的窗口。在windows系统上,我们可以多个窗口同时运行,每个窗口代表着一个应用程序。但在安卓上貌似并没有这个东西,但读者可以马上想到,不是有小窗口模式吗,像米UI最新的系统,不就...[2020/12/14]
Android之window机制token验证
前言
很高兴遇见你~ 欢迎阅读我的文章
这篇文章讲解关于window token的问题,同时也是Context机制和Window机制这两篇文章的一个补充。如果你对Android的Window机制和Context机制目前位了解过,强烈建议你先阅读前面两篇文章,可以帮助理解整个源码的解析过...[2020/12/14]
Android全面解析之Activity生命周期
前言
很高兴遇见你~ 欢迎阅读我的文章。
关于Activity生命周期的文章,网络上真的很多,有很多的博客也都讲得相当不错,可见Activity的重要性是非常高的。事实上,我猜测每个android开发者接触的第一个android组件都是Activity。我们从新建第一个Activity...[2020/12/14]
神秘、常用、多变的Binder
今天说说神秘又常用又多变的Binder~
Binder是什么
Binder通信过程和原理
在Android中的应用
Binder优势
Binder是什么
先借用神书《Android开发艺术探索》中的一段话:
直观的说,Binder是一个类,实现了IBinder接口。
从IPC(...[2020/12/8]
fs_tab文件的解析fs_tab文件的解析
fstab 文件保存在哪
按照android文档,Android 4.3 及更高版本,init、vold和recovery所用到的都是/fstab.<device>文件。但是在AndroidO 的中,似乎发生了变化。
在fsmgr中,fstab 的来源有两个,一个是devi...[2020/12/8]
Git 的基本使用
Learn Git Branching
官方地址
KeyWord
沙盒
快照
Git Command
Git Commit
Git 仓库中的提交记录保存的是你的目录下所有文件的快照。条件允许的情况下,它会将当前版本与仓库的上一个版本进行对比,并把所有差异打包到一起作为一个提交记录。...[2020/12/8]
再也不用担心问RecycleView了——面试真题详解
嗨,大家好,最近我去淘了一些关于RecycleView的面试真题,大家一起看看吧,这次的问题如果都弄懂了,下次面试再遇到RecycleView应该就没啥可担心的了。
讲一下RecyclerView的缓存机制,滑动10个,再滑回去,会有几个执行onBindView。缓存的是什么?cach...[2020/12/8]
Jetpack Compose Weekly Issue#1Jetpack Compose Weekly Issue#1
教程
Jetpack Compose 基础知识
Compose 编程思想
深入详解 Jetpack Compose | 实现原理
开源库
JetTheme
A flexible theme provider for Jetpack Compose. Suppo...[2020/12/8]
算法的时间复杂度
算法的时间与空间复杂度
事后分析法
缺点:不同的数据规模,不同的机器下算法运行的时间不同,无法做到计算运行时间
事前分析法
大O时间复杂度
渐进时间复杂度 随着n的增长,程序运行时间跟随n变化的趋势
几个原则
去掉常数项
2(n^2) =n^2
一段代码取时间复杂度最高的
t...[2020/12/8]
算法的时间复杂度算法的时间复杂度
算法的时间与空间复杂度
事后分析法
缺点:不同的数据规模,不同的机器下算法运行的时间不同,无法做到计算运行时间
事前分析法
大O时间复杂度
渐进时间复杂度 随着n的增长,程序运行时间跟随n变化的趋势
几个原则
去掉常数项
2(n^2) =n^2
一段代码取时间复杂度最高的
t...[2020/12/8]
[Android systrace系列] systrace入门第一式
Android systrace是分析性能问题最称手的工具之一,可以提供丰富的手机运行信息。
经过摸索,我们可以挖掘出许多技巧,分析问题更加得心应手。
第一篇文章,我先将systrace的官方文档引用一番,毕竟分析systrace的基本操作,是介绍后续技巧的铺垫。
希望我下面对官方...[2020/12/8]
[Android systrace系列] systrace最实用一招
systrace最吸引人的地方,在于当你不了解所有业务逻辑时,依然可以通过线程间的阻塞关系,快速定位问题。
有了这篇文章的铺垫,后续的文章再开始分享技巧。
----------------------------------------------------------------...[2020/12/8]
[Android systrace系列] systrace时间戳与手机时间的对应关系[Android systrace系列] systrace时间戳与手机时间的对应关系
一般用systrace分析问题,我们直接查看关注的流程即可。
有时logcat提供了重要的信息,但这些信息没有用systrace log输出。
如果我们能将systrace时间与手机时间对应起来,就不用添加systrace log重新编译手机ROM了。
--------------...[2020/12/8]
[Android systrace系列] systrace的信息从哪里来
--------------------------------------------------------------
这篇文章的小目标:
1. systrace是怎么抓出来的
2. 这些信息的来源是什么
-----------------------------...[2020/12/8]
Android 开发技术周报 Issue#299
新闻
Android可能很快就会获得新的表情符号 而无需等待操作系统更新
Android运行时或成为Android 12主线模块的一部分
谷歌改进Android 12更新方式:ART可选升级、无需厂商控制
教程
如何实现图片的扭曲效果,窗帘效果及仿真水波纹效果,...[2020/12/8]
记一次腾讯TBS浏览服务集成实践
这次的分享源于最近的实际开发工作。
项目需求是
在原生Android应用中嵌入WebView,放置用于支撑音视频直播业务的Web页;
另外还需提供Word、Excel、PowerPoint、PDF等常见文档格式的内容预览。
经过一番技术选型,最终选定集成腾讯TBS浏览...[2020/12/8]
[Android systrace系列] 抓取开机过程systrace
-------------------------------------------------------------------------
这篇文章的小目标:了解抓取开机过程systrace的步骤
---------------------------------------...[2020/12/8]
EditText 使用详解
本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:
一、EditText 继承关系
二、EditText 常用举例
三、EditText 自定义背景框
四、EditText自动检测输入内容
五、Edittext 密文显示
六、Edit...[2020/12/8]
Android控件与布局——基础控件RadioButtonAndroid控件与布局——基础控件RadioButton
今天,我们的主题是基础控件RadioButton。在开始之前,我们还是以官方文档为开端来开始我们的讲解,下面是Android文档中对RadioButton的简介:
看过上一篇文章的应该可以了解到,这个和我们的CheckBox是十分类似的,不同的点在于,这个控件可以由非选中状态通过点击事...[2020/12/8]
Android面试题《思考与解答》11月刊
又来更新啦,Android面试题《思考与解答》11月刊奉上。
说说View/ViewGroup的绘制流程
View的绘制流程是从ViewRoot的performTraversals开始的,它经过measure,layout,draw三个过程最终将View绘制出来。
performTr...[2020/12/8]
NDK&JNI开发总结
NDK&JNI开发总结
简介
附个不错的博客 https: www.jianshu.com/p/87ce6f565d37
在Android Framework中,需要提供一种媒介或 桥梁,将Java层(上层)与C/C++层(下层)有机的联系起来,使得他们互相协调完成某些任务。...[2020/12/8]
Flutter Weekly Issue 70
教程
承载亿级流量的开发框架,闲鱼 Flutter 技术解析与实战大公开
来一份Flutter渲染分析
UME - 丰富的Flutter调试工具
Flutter源码剖析(四):flutter run流程解析
Flutter widgets 快问快答 | 第...[2020/12/8]
探究 | 如何捕获一个Activity页面上所有的点击行为
前言
最近逛wanAndroid论坛,发现一个有趣的问题:如何捕获一个Activity页面上所有的点击行为。
一起研究下吧,不想看源码的小伙伴可以直接看文末总结~
准备工作
先得罗列出页面上的一些点击行为,常用的有:
普通View的点击
动态add的View的点击
Dialog上的...[2020/12/8]
Android 开发技术周报 Issue#298Android 开发技术周报 Issue#298
新闻
谷歌Pixel 2系列三年Android系统更新支持画上句号
为什么没人告诉我Android手机居然还能有线上网?
谷歌概述了2021年的Android应用开发与政策变动规划
谷歌Android Me ages测试版将推出RCS端到端加密功能
教程
...[2020/11/23]
线程与更新UI,消除偏见,细谈原理
前言
相信不少读者都阅读过相类似的文章了,但是我还是想完整的把这之间的关系梳理清楚,细节聊好,希望你也能从中学到一些。
进入正题,大家应该都听过这样一句话——“UI更新要在主线程,子线程更新UI会崩溃”。久而久之就感觉这是个真理,甚至被认为是“官方结论”。
但是如果问你,官方什么时候...[2020/11/23]
Android自定控件基础(一)——几何图形绘制Android自定控件基础(一)——几何图形绘制
虽然本人有几年开发经验,但是自定义控件这一块儿,研究的很少,惭愧……用到的时候就是百度查找,复制粘贴。工时紧,总是想的快点完工就好。(都是借口啦,想学总会有时间哒)
作为一个Android开发 要说自定义控件不会写,太丢人了,我决定一点点做起,以后用的都是自己的自定义控件!!!加油~~...[2020/11/23]
Flutter Weekly Issue 69
教程
京东技术中心 Flutter 实践之路
他把闲鱼APP长列表流畅度翻了倍(良心教程)
Flutter中的Tree Shaking机制初探(科普文)
Flutter Navigator2.0 完全指南与原理解析
深入进阶-从一次点击探寻Flutter事...[2020/11/23]
不同角度看Handler——另类三问
之前有一章节介绍了Handler的常见面试题,今天就来说说另类的,可能你没关注的其他问题,一起看看吧。
系统为什么提供Handler
这点大家应该都知道一些,就是为了切换线程,主要就是为了解决在子线程无法访问UI的问题。
那么为什么系统不允许在子线程中访问UI呢?
因为Andro...[2020/11/23]
Android Studio 全屏沉浸式透明状态栏效果Android Studio 全屏沉浸式透明状态栏效果
如何实现?
1.)首先实现全屏
第一种:继承主题特定主题
在Android API 19以上可以使用****.TranslucentDecor***有关的主题,自带相应半透明效果,Theme.Holo.NoActionBar.TranslucentD...[2020/11/23]
Android序列化问题与思考
今天再来谈谈Android中的对象序列化,你了解多少呢?
序列化指的是什么?有什么用
序列化指的是讲对象变成有序的字节流,变成字节流之后才能进行传输存储等一系列操作。
反序列化就是序列化的相反操作,也就是把序列化生成的字节流转为我们内存的对象。
介绍下Android中两种序列化接口
...[2020/11/16]
三星S20关闭5G消息状态图标
偶然在浏览三星论坛讨论区发现有很多人群对关闭S20系列5G消息头标很感兴趣,刚好最近有收到测试样机,简单为大家整理下关闭的方法。
5G消息图标信息箭头所指红框内容(类似流量上线行小箭头):
关闭方法如下:
1、打开信息窗口,点击搜索按钮旁三个小点:
...[2020/11/16]
安卓快速关机APP安卓快速关机APP
目录自说自话使用方法
自说自话
像我这样每天晚上睡觉关机的人不知道有多少,反正我每天都有关机的需求。因此我特别讨厌长按关机键进行关机,感觉浪费我好几秒的生命。
因此我开发了这款APP,主要是自用,有需求的人可以下载玩玩。
查看源码:【Github】,【Gitee】。【下载地址】...[2020/11/10]
10.5 详解Android Studio项目结构
Android项目的结构很复杂,并不像HTML项目,最简单的直接一个HTML文件就行了,相信学完上一节的同学就明白,哪怕是一个HelloWorld这样一个项目的文件可能都有几十个,所以我们需要搞清楚,不然到时候要添加一个文件都不知道放那个目录。
├── app #一个模块(Module...[2020/11/9]
11.2 Android Studio如何切换主题和更改字体11.2 Android Studio如何切换主题和更改字体
如何进入设置?
全平台启动界面
Configure-Preferences
主界面
Windows版本:File-Settings
Mac版本:Android Studio-Preferences
外观字体
Settings-Appearance & Behavior-Ap...[2020/11/9]