android
文章平均质量分 67
金陵张大炮
有趣的灵魂!
展开
-
Activity和Service的交互方式
Activity向Service通信第一种方式:通过MyBinder方式调用Service方法步骤继承Binder 定义中间人对象BanZhengServicepublic class BanZhengService extends Service { //把我定义的中间人对象返回 @Override public IBinder onBind(Intent intent) { return new MyBinder(); } //办转载 2021-05-13 10:55:19 · 1975 阅读 · 0 评论 -
一个使用unix domain socket进行IPC的小例子
https://cnodejs.org/topic/5ae1f5da39a81e4548f45741原创 2021-03-31 13:34:58 · 226 阅读 · 0 评论 -
gradle安装
Gradle是一个主要用于Java项目的通用构建工具。它结合了Ant和Maven的最佳功能。与使用XML进行脚本编写的前辈不同,Gradle使用Groovy,这是一种动态的,面向对象的Java平台编程语言,用于定义项目和构建脚本。在本教程中,我们将向您展示如何在Ubuntu 18.04上安装Gradle。相同的说明适用于Ubuntu 16.04和任何基于Ubuntu的发行版,包括Linux Mint和Elementary OS。前提条件为了能够在Ubuntu系统上安装软件包,您必须以具有sudo权限的转载 2021-03-25 10:55:14 · 915 阅读 · 0 评论 -
gradle安装
https://m.linuxidc.com/Linux/2018-10/155112.htm原创 2021-03-25 10:38:26 · 118 阅读 · 0 评论 -
RecycleView
RecycleView支持多个不同类型布局,他们是怎么缓存,并查找的;回收池中有不同的类型集合(栈),get set typeRecycleView能不能直接调用setTags(),不传递键的方式,如setTags(“字符串”)为什么RecycleView需要用到适配器,对适配器的理解是什么;将UI和控件加载滑动的解耦;RecycleView一屏加载的个数是怎么确定的,他是怎么做到不显示的item缓存机制到内存中。onlayout中确认,在添加过程中,每填充一个item 那他的b.原创 2021-03-24 18:21:05 · 213 阅读 · 0 评论 -
Handler你知道还有个同步屏障
搬运自郭霖文章:https://mp.weixin.qq.com/s/CNpnS6y2IYobzDa7rAjy1Q前言 关于handler的内容,基本每个android开发者都掌握了,网络中的优秀博客也非常多,我之前也写过一篇文章,读者感兴趣可以去看看。 这篇文章主要讲Handler中的同步屏障问题,这也是面试的热门问题。很多读者觉得这一块的知识很偏,实战中并没有什么用处,仅仅用来面试,包括笔者。我在Handler机制一文中写到:其实同步屏障对于我们的日常使用的话其实是没有多大用处。因为设置同步屏转载 2021-03-23 18:41:22 · 138 阅读 · 0 评论 -
关于handler以及它已过时的构造函数handler()
搬运自:https://blog.csdn.net/BitFu/article/details/110183184 ,仅作个人学习笔记用一.android消息驱动机制Thread、Looper、Handler这三个是android消息驱动机制的核心对象,让我们先分析并了解一下一个线程拥有消息处理能力的过程:class LooperThread extends Thread{ public Handler mHandler; public void run() {转载 2021-03-22 12:59:26 · 2587 阅读 · 0 评论 -
Android系统启动流程
android的启动流程是从底层开始进行的,具体如下所示:Android是基于Linux内核的系统,Android的启动过程主要分为两个阶段,首先是Linux内核的启动,然后是Android框架的启动。可以将Andorid系统的启动流程分为以下五个层进行展开,分别是Loader层,Kernel层,Native层,Framework层,Application层。Loader层1.首先按开机键后,引导芯片将引导程序从ROM中加载到RAM中2.引导程序(Bootloader)的主要作用就是将操作系统映像原创 2021-03-18 11:18:44 · 241 阅读 · 0 评论 -
Android Fragment的四种跳转
一、简介最近做项目涉及到了很多关于Fragment跳转的问题,虽然跳转的方式不多,但还是搞的我的晕头转向,所以写了一篇文章主要介绍有关Fragment的四种跳转方式:1、从同一个Activiy的一个Fragment跳转到另外一个Fragment2、从一个Activity的Fragment跳转到另外一个Activity3、从一个Activity跳转到另外一个Activity的Fragment上4、从一个Activity的Fragment跳转到另外一个Activity的Fragme原创 2021-03-12 17:26:23 · 3962 阅读 · 0 评论 -
AndroidManifest.xml文件中(uses-library)详解
语法:<uses-libraryandroid:name=“string”android:required=[“true” | “false”] />被包含于中例如:<application ........ ........> <uses-library android:name="。。。。。。。" android:required="true" /></application>说明原创 2021-03-11 10:35:46 · 922 阅读 · 0 评论 -
DataBinding 和 ViewBinding
https://blog.csdn.net/deng_hui_long/article/details/112301895原创 2021-03-10 15:24:33 · 284 阅读 · 0 评论 -
Android疑难杂症
adb install apk时提示“is a persistent app. Persistent apps are not updateable”解决方案:adb install 应用的时候,遇到提示“failed to install……,package……is a persistent app. Persistent apps are not updateable”,这个时候就没办法正常安装新应用;这是由于应用被作为系统应用安装在系统目录下,所以会提示说这个应用是一个持久应用程序,持久应用程原创 2021-03-10 12:19:27 · 1133 阅读 · 0 评论 -
Android面试
https://www.kancloud.cn/s1657292627/android_ios/621895原创 2021-03-09 17:19:59 · 105 阅读 · 0 评论 -
Tablayout使用详解
前言Tablayout继承自HorizontalScrollView,用作页面切换指示器,因使用简便功能强大而广泛使用在App中。但有的产品经理偏偏是个磨人的小妖精,真的猜不透啊,今天要这种效果,明天就指着另一款App说做成跟这个一样。对付这种产品经理我们有骨气的程序员该怎么办?怎么办?当然是屈服啊,不然去跳楼让他因内疚改需求?所以,就在各种复杂的情况下打磨,渐渐地就变得圆润。这里,有Tablayout的各种使用场景,拿去指着产品经理说:你要哪个给你哪个。github代码直通车先上效果图:分别为设原创 2021-03-08 15:32:54 · 1394 阅读 · 0 评论 -
FragmentPagerAdapter与FragmentStateAdapter的区别
FragmentPagerAdapter使用FragmentPagerAdapter 时,Fragment对象会一直存留在内存中,所以当有大量的显示页时,就不适合用FragmentPagerAdapter了,FragmentPagerAdapter 适用于只有少数的page情况,像选项卡。FragmentStatePagerAdapter这个时候你可以考虑使用FragmentStatePagerAdapter ,当使用FragmentStatePagerAdapter 时,如果Fragment不显示,原创 2021-03-08 14:58:16 · 905 阅读 · 0 评论 -
Viewpager 升级版 - ViewPager2 实战
Viewpager 升级版 - ViewPager2 实战1. 前言Google 在 androidx 组件包里增加了一个新的组件 ViewPager2,目前已经更新了两个 alpha 版本了。那么,和之前的 ViewPager 组件相比,有什么改进呢?查看官方文档,有下面一段话:ViewPager2 replaces ViewPager, addressing most of its predecessor’s pain-points, including right-to-left layout原创 2021-03-08 14:55:40 · 445 阅读 · 0 评论 -
Android 沉浸式状态栏的实现
一提到沉浸式状态栏,第一个浮现在脑海里的词就是“碎片化”。碎片化是让 Android 开发者很头疼的问题,相信没有哪位开发者会不喜欢“write once, run anywhere”的感觉,碎片化让我们不得不耗费精力去校验代码在各个系统版本、各个机型上是否有效。因此以前我一直把沉浸式状态栏看作一块难啃的骨头,但是该面对的问题迟早还是要面对,所以,不如就此开始吧。沉浸式状态栏的实现方法一:通过设置 Theme 主题设置状态栏透明因为 API21 之后(也就是 android 5.0 之后)的状态栏原创 2021-03-05 18:08:57 · 1996 阅读 · 0 评论 -
Android 全面屏显示\沉浸式状态栏(黑条问题解决)
前言:之前做项目为了达到全面屏显示,设置了一个theme主题样式,如下: <style name="ImageTranslucentTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!--设置顶部状态栏是否为透明--> <item name="android:windowTranslucentStatus">false</item> <!--原创 2021-03-05 17:17:43 · 18432 阅读 · 11 评论 -
Android Jetpack架构组件之ViewModel入门到精通
前言——这篇主要是梳理一下Jetpack架构组件之一的ViewModel,并结合楼主所学做个总结。面向那些还不认识ViewModel的同学们。看完这篇可以快速了解它,并轻松使用。也想请教前辈们指点文章中的错误或不足的地方。本篇只针对ViewModel,不会拓展额外的知识如MVVM,若想了解更多关于Jetpack组件知识可以看楼主写的Jetpack专栏。一、简介(1)ViewModel是什么——ViewModel 是google推出的Jetpack架构组件之一,设计成以生命周期的方式存储和管理UI相原创 2021-03-04 18:32:50 · 312 阅读 · 1 评论 -
adb 操控系统命令开关
//重启手机public static final String REBOOT = "reboot"; //开启WiFipublic static final String WIFI_ON = "svc wifi enable"; //关闭WiFipublic static final String WIFI_OFF = "svc wifi disable"; //查看WIFI状态public static final String QUERY_WIFI_STATE = "setting原创 2021-02-19 10:03:52 · 763 阅读 · 0 评论 -
理解Binder机制
前言 Android中Binder机制的重要性不言而喻,从IPC角度来看, Binder是一种跨进程通信方式,Binder也可以理解为一种虚拟的物理设备,它的设备驱动是/dev/binder;从Android framework角度来说,Binder是Service Manager连接各种Manager和相应ManagerService的桥梁;从Android应用层来说,Binder是客户端和服务端进行通信的媒介,当bindService的时服务端会返回一个包含了服务端业务的Binder对象,用于客户端原创 2021-02-19 10:02:34 · 354 阅读 · 0 评论 -
LiveData与MutableLiveData详解
前言 LiveData与ViewMode是经常搭配在一起使用的,但是为了不太混乱,我还是拆分开来说明,此篇博客只讲解 LiveData 与 MutableLiveData的概念与使用方式(但是会涉及到ViewMode的部分代码).LiveData是干什么的? 由于LiveData和MutableLiveData都是一个概念的东西(只是作用范围不同)所以就不重复解释了,直接理解LiveData就可以明白MutableLiveData直接理解LiveData的字面意思是前台数据,其实这其实是很准确的原创 2021-02-18 16:29:47 · 2179 阅读 · 2 评论 -
Android架构组件(1)——Lifecycle
Android 架构组件(一)——Lifecycle-Aware Components有一天“谷歌开发者”官微推送了《正式发布 Android 架构组件 1.0 稳定版 | 附带中文介绍视频》,发现这种架构足够秒杀MVP、MVVM,虽然之前的Google I/O大会中也介绍过,但是这次推出是稳定版,而且是可以投入到生产中去。于是就顺着这篇去官网看了使用文档——《Guide to App Architecture》。为了能够更好的理解架构组件的原理,准备先从Lifecycle入手,一步步去理解。为什么原创 2021-02-18 15:36:24 · 158 阅读 · 0 评论 -
Android DataBinding 从入门到进阶
公众号:字节数组,热衷于分享 Android 系统源码解析,Jetpack 源码解析、热门开源库源码解析等面试必备的知识点DataBinding 是谷歌官方发布的一个框架,顾名思义即为数据绑定,是 MVVM 模式在 Android 上的一种实现,用于降低布局和逻辑的耦合性,使代码逻辑更加清晰。MVVM 相对于 MVP,其实就是将 Presenter 层替换成了 ViewModel 层。DataBinding 能够省去我们一直以来的 findViewById() 步骤,大量减少 Activity 内的代.原创 2021-02-09 17:58:06 · 311 阅读 · 0 评论 -
从零开始的RxJava2.0教程(四)在安卓中的应用
1. 前言在第1 2 3篇中,我介绍了RxJava 2.0的基本用法。这一篇将介绍在安卓中的基本用法。附上本系列教程的链接。从零开始的RxJava2.0教程(一)基础从零开始的RxJava2.0教程(二)操作符从零开始的RxJava2.0教程(三)响应式的好处从零开始的RxJava2.0教程(四)在安卓中的应用2. RxAndroidRxAndroid是RxJava针对Android平台的扩展库。曾几何时,RxAndroid确实提供了很多的实用的方法,但后来社区上很多人对这库的结构有意见,原创 2021-02-08 16:15:53 · 191 阅读 · 1 评论 -
从零开始的RxJava2.0教程(三)响应式的好处
转载自 http://blog.csdn.net/qq_35064774/article/details/530653601. 前言在第一篇中,我介绍了RxJava的基础知识。第二篇中,我向你展示了操作符的强大之处。这一篇,我将向你介绍响应式的优点。2. 错误处理到目前为止,我都没怎么介绍 onComplete 和 onError 方法。这两个方法用来通知订阅者,数据发送完成或出现错误。Flowable.create(new FlowableOnSubscribe<String>()原创 2021-02-08 15:55:08 · 141 阅读 · 0 评论 -
从零开始的RxJava2.0教程(二)操作符
转载自 http://blog.csdn.net/qq_35064774/article/details/530573591. 前言在上一篇中,我介绍了RxJava 2.0的一些基础知识,同时也介绍了map()操作符。这篇blog将介绍许多RxJava中的操作符,RxJava的强大性就来自于它所定义的操作符。首先先看一个例子:2. 准备工作假设我的 Flowable 发射的是一个列表,接收者要把列表内容依次输出。根据上一篇blog的内容,你可以会写出这样的代码:List<Integer&g原创 2021-02-08 15:33:15 · 196 阅读 · 0 评论 -
从零开始的RxJava2.0教程(一)基础
转载自 http://blog.csdn.net/qq_35064774/article/details/530573321. 为什么写这篇文章RxJava这些年越来越流行,而上月末(2016.10.29)发布了2.0正式版,但网上大部分关于RxJava的教程都是1.x的。关于2.0的教程基本是介绍1.x和2.x的区别,对于RxJava的老用户来说,自然看看和1.x的区别就大致会用了,但是对于新手来说,就不得不先学1.x。这样来说,学习成本就提高了,本身RxJava就不容易上手。为了让年轻的司机可以直原创 2021-02-08 14:57:33 · 255 阅读 · 0 评论 -
RxJava 中的map与flatMap
1、map和flatMap都是接受一个函数作为参数(Func1)2、map函数只有一个参数,参数一般是Func1,Func1的<I,O>I,O模版分别为输入和输出值的类型,实现Func1的call方法对I类型进行处理后返回O类型数据3、flatMap函数也只有一个参数,也是Func1,Func1的<I,O>I,O模版分别为输入和输出值的类型,实现Func1的call方法对I类型进行处理后返回O类型数据,不过这里O为Observable类型map先说 map,一个简单的例子 .原创 2021-02-07 18:27:14 · 2239 阅读 · 0 评论 -
RxJava网络请求书写
背景项目中使用 Rxjava 进行网络请求,请求的方式有 get 请求和 post 请求,而请求中 有时候 需要 请求头 head,有时候需要 请求 json 串,琳琳种种,梳理下思路:1. get 请求无参数-get@GET("login/sys")ObservablegetTKUrl();有参数-get ,用 Query 查询字段@GET("customer/login")Observable<PolicRecordBean> getPolicyRecord(原创 2021-02-07 16:56:02 · 887 阅读 · 0 评论 -
Google Earth导入GPS设备NMEA文本数据
一、提取GPS数据生成TXT文本文件1. GPS设备NMEA文本数据gps.txt$GNGGA,032006.00,2930.35909,N,10634.37156,E,2,12,0.82,252.8,M,-26.5,M,,0000*66$GNRMC,032007.00,A,2930.35909,N,10634.37156,E,0.000,250.87,190320,2.57,W,D*33$GNGGA,032007.00,2930.35909,N,10634.37156,E,2,12,0.79,2原创 2021-02-04 14:59:23 · 2025 阅读 · 1 评论 -
ADB
adb logcat -v threadtime |grep "GnssCloudConfiguration"原创 2021-02-04 14:56:40 · 95 阅读 · 0 评论 -
2021-面试准备
JavaJava基础一、数据类型[基本类型](https://github.com/CyC2018/CS-Notes/blob/master/notes/Java 基础.md#基本类型)[包装类型](https://github.com/CyC2018/CS-Notes/blob/master/notes/Java 基础.md#包装类型)[缓存池](https://github.com/CyC2018/CS-Notes/blob/master/notes/Java 基础.md#缓存池)二原创 2021-02-04 11:02:08 · 160 阅读 · 0 评论 -
Doze和App Standby模式下的Android应用适配
从Android6.0(API23)开始, Google为Android加入了两种省电特性,通过管理Android应用(以下简称应用)在非充电状态下的设备中的运行策略来达到延长用户的Android设备使用时间的目的。这两种特性存在一定的差别,Doze模式通过延缓应用在设备长时间待机状态下对于CPU和网络资源的使用来实现节能;而App Standby则是通过延缓最近未被使用的后台应用对于网络的请求来达到同样的目的。Doze和App Standby在Android6.0及以上的Android设备中可以影响所有原创 2021-01-20 09:58:45 · 568 阅读 · 1 评论 -
Androidx初尝及其新旧包对照表
x的最低实验条件AndroidStudio 3.2.0+gradle:gradle-4.6以上本次实验条件:AndroidStudio 3.3 (强制要求最低gradle版本为gradle-4.10-all)gradle:gradle-4.10-all使用AndroidX如果要在新项目中使用AndroidX,则需要将compile SDK设置为Android 9.0(API级别28)或更高版本,并在gradle.properties文件中设置以下两个Android Gradle插件标志。a原创 2020-11-05 16:08:18 · 612 阅读 · 1 评论 -
Android Support Library 是什么?
官方地址:https://developer.android.com/about/dashboards/ (可能要FQ)上图,应该不用我解释了,相信就算是萌新也懂。在没有接触安卓之前,听说安卓开发需要兼容很多设备和不同版本的系统,今天呢,不同设备咱先不谈(因为我还没学到)我就在这里对这两天的只是进行一个小结,至于标题为什么是《Android Support Library 是什么?》,因为我在学习的过程中,一直对这个支持库不太理解,我相信很多萌新也跟我一个状态,而网上对这个东西讲解有点分散,又不.原创 2020-11-05 14:35:20 · 1435 阅读 · 0 评论 -
Android Studio 导入系统源码后,一直 scanning files to index 的解决方法
使用Android studio导入系统源码及跳转依赖配置,见:https://blog.csdn.net/Grekit_Sun/article/details/109199713导入后,遇到AS一直不停地 scanning files to index,在网上搜索,几乎全是这个解决方法:File -> Invalidate Caches / Restart但是,使用后依旧没有效果,于是发现只需要去掉勾选 “Generate sources automatically”即可:如果去掉勾选后原创 2020-10-30 16:48:04 · 1675 阅读 · 0 评论 -
AndroidStudio导入源码和调试
AndroidStudio导入源码和调试一、Android源码下载和编译下载和编译源码参见下面macOS High Sierra编译android9.0源码-https://blog.csdn.net/wangkaishou/article/details/89855766二、生成可被AndroidStudio导入的配置文件2.1 单独编译idegen模块生成idegen.jar在源码的根目录下,执行下面命令编译出idegen.jar文件source build/envsetup.shmmm原创 2020-10-21 13:57:07 · 944 阅读 · 0 评论 -
Android底层开发(4)
Android.mkAndroid.mk编写分析一个最简单的Android.mk;LOCAL_PATH := $(call my-dir)定义了当前模块的相对路径;include $(CLEAR_VARS)清空当前环境变量LOCAL_MODULE := test编译生成的目标名称LOCAL_SRC_FILES :=test.c编译该模块需要的源文件include$(BUILD_EXECUTABLE)编译所生成的目标文件格式将工程下的所有源原创 2020-10-16 18:36:04 · 187 阅读 · 0 评论 -
Android底层开发(3)
Android编译过程及脚本分析build/envsetup.sh分析;加载编译命令(m,mm,mmm,lunch…);加载平台信息;lunch做了什么,如何增加和删除lunch;device/xiaomi/分支的sh文件功能:选择分支,配置编译环境变量,输出目录Android编译命令使用;Android编译过程初始化参数设置;检查环境变量与目标环境;选择lunch并读取目标配置和平台信息;清空输出目录;编译;生成升级包;...原创 2020-10-16 17:09:44 · 139 阅读 · 0 评论