![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
Hunter2916
快乐的小码农,学习学习ing
展开
-
android adb命令常用大全
14、如何全局搜索文件下所有的log日志。2)在顶部文件夹目录中输入”cmd"命令。2、dos窗口日志异常,使用命令清理下。3、直接在dos命令窗口查询某个关键字。10、强制拉起某个activity页面。9、强制关闭某个软件或者清除本地缓存。1)日志解压放到log文件夹中。3)在dos窗口里面进行搜索。11、查看某个应用的进程号。例如:demo 这个apk。13、查看设备屏幕像素密度。6、进入目录删除文件。12、查看设备分辨率。原创 2024-06-26 14:53:39 · 242 阅读 · 0 评论 -
Android安装提示“安装失败”、“应用未安装”——Android版本问题
【代码】Android安装提示“安装失败”、“应用未安装”——Android版本问题。原创 2024-04-21 17:32:32 · 108 阅读 · 1 评论 -
Android: Activity的启动流程(基于Android 13)
以上就是今天要讲的内容,本文仅仅简单地走了一遍在Android13中Activity的启动流程,只是有些许变化,整体流程思路还是和以前版本一致。想要了解源码思路,画时序图还是很有帮助的,跟踪代码不迷路。两块三刀。转载 2023-02-06 21:00:53 · 549 阅读 · 0 评论 -
Activity、view、window之间的关系
Activity是ui的框架 View是展示出来的视图 而view有多个 window主要是管理 View 的创建与删除,以及与 ViewRootImpl 的交互,将 Activity 与 View 解耦。Activity像一个工匠(控制单元),Window像窗户(承载模型),View像窗花(显示视图)LayoutInflater像剪刀,Xml配置像窗花图纸。2:这个PhoneWindow有一个“ViewRoot”,这个“ViewRoot”是一个View或者说ViewGroup,是最初始的根视图。转载 2023-02-06 16:49:44 · 157 阅读 · 0 评论 -
Framework 工作方式及原理,Activity 是如何生成一个 view 的机制是什么?
Activity 创建一个 view 是通过 ondraw 画出来的, 画这个 view 之前呢,还会调用 onmeasure 方法来计算显示的大小.Surfaceview 是直接操作硬件的, 因为 或者视频播放对帧数有要求,onDraw 效率太低,不够使,Surfaceview 直接把数据写到显存。所有的框架都是基于反射 和 配置文件(manifest)的。原创 2023-02-03 15:30:52 · 211 阅读 · 0 评论 -
MVC,MVP和MVVM框架之间的理解
LiveData是具有生命周期意识的一个可观察的数据持有者,ViewModel中的数据有LiveData持有,并且只有当Activity/Fragment处于活动时才会通知UI数据的改变,避免无用的刷新UI。1.使得M,V,VM的解耦更加彻底,在mvp模式中,p需要持有V的引用,才能去刷新UI,在MVVM模式中,View和Model使用databingding进行双向绑定,一方改变会直接通知另外一方,使得viewModel能专注于业务逻辑的处理,而不需要去关心UI刷新。UI和数据严格的分开。原创 2023-02-03 15:11:17 · 508 阅读 · 1 评论 -
不同工程同一套代码(基础组件SDK一样)的使用
说明:有使用公司的代码要适应不同的地域的需求,需要在基础组件的基础上开发不同的App即不同的工程(请看下图),当两个工程用到同一套代码如何做到互不影响,请看下文代码1、第一步需要在AppbaseSDK中定义的类定义接口名称和方法public interface IPropertiesConfig { //是否需要显示XX信息 boolean isShowSomethingInfo();}定义一个注册类public final class Proper.原创 2020-10-18 21:26:57 · 376 阅读 · 0 评论 -
chmod命令详细用法
chmod命令详细用法指令名称 : chmod使用权限 : 所有使用者使用方式 : chmod [-cfvR] [–help] [–version] mode file…说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所调用。参数 :mode : 权限设定字串,格式如下 : [ugoa…][[±=][rwxX]…][,…],其中u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示转载 2020-07-29 22:43:38 · 396 阅读 · 0 评论 -
Android 集成友盟消息推送以及高级用法
集成准备前工作1、在友盟官方网站上注册账号,并创建应用注意:包名要和项目包名一直,不然推送手机无反应创建完成之后会生成appkey和Umeng Message Secret,保存好开发时要使用的2、开始集成SDK项目中使用的是手动集成,防止SDK版本号不小心升级带来不必要的麻烦1)访问【友盟+】官网组件化SDK下载地址,选择Android平台SDK...原创 2020-04-13 16:55:07 · 1712 阅读 · 0 评论 -
Fragment好Activity之间的数据交换(传值)
1、Activity把数据传递给Fragment有时候从Activity跳转到fragment时需要传递参数,可以使用bundle的方式传递Activity中代码private fun initView() { fragments = ArrayList() if (fragments!!.isEmpty()) { fr...原创 2020-04-06 21:50:09 · 258 阅读 · 0 评论 -
android手机获取是否开启了底部导航栏
搜索了很多方法以及AndroidUtilCode里面的栏相关 ->BarUtils.java方法都不行(华为mate20 android10 系统)代码(说明BarUtils.getStatusBarHeight() 是AndroidUtilCode工具类 依赖 implementation'com.blankj:utilcode:1.25.2')@Tar...原创 2020-04-03 16:45:34 · 1031 阅读 · 1 评论 -
使用SmartRefreshLayout下拉刷新框架实现加载更多
使用 SmartRefreshLayout可以实现recyclerview的下拉刷新和上拉加载更多,但是有时候在使用上拉加载更多时,不同的json格式需要不同的判断方法1、后台根据每次相加的totalElements的个数作为请求的参数即pageSize+=12 pageNo=1{"content":[{"cancel":false,"dateCreated":15713698...原创 2020-03-16 23:47:45 · 1944 阅读 · 0 评论 -
使用Activity实现dialog效果(并解决输入框在软键盘顶部方法)
说明:公司的需求是要在底部弹框中增加一个输入框,并且最底部分是时间选择器,点击编辑框时,遮挡住时间选择框布局使用fragmentDialog无法控制输入框1、在styles中设置Activity的弹框主题以及弹出的动画样式 <!--ActivityDialog底部弹出样式 start--> <style name="ActivityDialogTh...原创 2020-02-11 11:37:13 · 1230 阅读 · 0 评论 -
线性布局必须点击两次才能生效
1、样式页面上有editview,而此时焦点在EditText上点击注射日期linearLayout时,需要两次才能点击成功,下面是一个编辑框(editview)解决:在点击的控件布局添加android:focusableInTouchMode="false"即可解决 <RelativeLayout ...原创 2020-01-20 15:20:26 · 402 阅读 · 0 评论 -
android打开和关闭软件盘工具类
1、进入界面就打开软键盘 /** * 打开软键盘 * * @param mEditText * @param mContext */ public static void openKeybord(View mEditText, Context mContext) { InputMethodManager imm = (...原创 2020-01-20 13:44:03 · 225 阅读 · 0 评论 -
app内各个module之间跳转
当我们在开发的过程中有时候有些类或者基类背封装成lib,从lib库中类跳转到app module类中使用intent是不行的,今天介绍下两种实现方式1、使用第三方开源框架(阿里巴巴的Router)1)在build.gradle中添加依赖:defaultConfig中添加:javaCompileOptions {annotationProcessorOptions {argument...原创 2019-11-24 22:52:42 · 922 阅读 · 0 评论 -
RxBinding系列之RxView
前言自从用上RxJava后彻底迷上Rx系列响应式编程,从本篇开始一起来学习一下Rx套餐之一的RxBinding。RxBinding是什么?它是一组开源库,来自大神Jake Wharton之手,可将Android中各类UI控件的动作事件转换为RxJava中的数据流。也就是说使用RxBinding,我们就可以以RxJava的形式来处理UI事件。本篇主要讲解其中RxView的相关View事件如何绑定。...转载 2019-11-12 23:33:24 · 470 阅读 · 0 评论 -
关于Android 10.0适配,看这篇就够了
Android Q Beta 刚出,按照惯例国内是半年内不用理睬Q的,但是OPPO的一封要求适配Q的邮件要求尽快完成相关适配,不然应用会被下架。本文将从三个角度介绍Android Q的部分适配问题,也是大家开发适配过程中大概率会遇到的问题:Q 行为变更:所有应用 (不管targetSdk是多少,对所有跑在Q设备上的应用均有影响)Q 行为变更:以 Android Q 为目标平台的应用(tar...转载 2019-11-12 23:04:11 · 728 阅读 · 0 评论 -
开发时遇到的问题videoview初始化播放会出现几秒黑屏问题
videoview初始化黑屏开发时百度了好多方法解决这个问题,效果不是很好把下面这句放在onCreate()方法里面就可以实现初始化时去除黑屏 getWindow().setFormat(PixelFormat.TRANSLUCENT); ...原创 2016-12-29 11:19:26 · 2591 阅读 · 1 评论 -
Gson解析多种json格式
注意:在Androidstudio的App下build.gradle中添加Gson依赖compile 'com.google.code.gson:gson:2.8.2'一、中括号纯数组格式json:[ { "model": "123123", "modelId": 131123456413, "name": "Eillot",...原创 2018-08-16 00:05:59 · 701 阅读 · 0 评论 -
Android的editview编辑框只能输入0~100的整数
1、使用Editview自带的输入框监听 addTextChangedListener(new TextWatcher(){})方法 //处理编辑框 edit.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(Ch...原创 2018-08-16 16:00:08 · 2136 阅读 · 0 评论 -
Android使用Intent传值注意(传递Bean对象)
1、使用Intent或者Intent结合Bundle传递Bean1)、封装好的方法使用Intentpublic static void startAction(Context context, PointDetailData.ResultBean.DataBean dataBean) { Intent intent = new Intent(context, Undist...原创 2018-08-16 16:08:54 · 2226 阅读 · 0 评论 -
Androidstudio的快捷键自己总结大全
1、全局查找在顶部选中edit标签-------->Find------->Find in path原创 2018-10-10 11:52:31 · 156 阅读 · 0 评论 -
Android屏幕适配(不同的屏幕分辨率和尺寸)
Android屏幕适配目录:Android屏幕适配概念区分换算关系划分标准Android手机常见尺寸和对应分辨率部分Android测试机分析补充.9图的使用说明在实际开发过程中,会遇到不同的机型,为了让控件和布局要在不同屏幕上显示相近的样子,就得在drawable-ldpi/mdpi/hdpi/xhdpi/xxhd...转载 2018-08-22 10:40:07 · 2335 阅读 · 0 评论 -
Gson、FastJson、org.JSON到底哪一个效率更高,速度更快
不是一直都说是阿里巴巴的FastJson最快的嘛!2)分析出现上面的结果的原因,为什么在数据量少的时候,org.json 类库拆包解析的更快呢,仔细看源码会发现:org.json在进行解析的时候需要通过for循环依次的将数据取出来放到指定对象的成员变量中 是for循环的缘故,当for循环的次数太多的时候肯定就相当耗时了,在数据量小的时候却表现的比较出色。3)然而这样解析有着明显的问题,因为每一次测试的时间都不相同,因为不是很稳定,所以应该取一下平均值,我这就对 拆包解析的方法里加了个50次的循环!转载 2018-08-22 11:12:59 · 2073 阅读 · 1 评论 -
使用Intent传递对象或集合
Android中Intent传递类对象提供了两种方式一种是 通过实现Serializable接口传递对象,一种是通过实现Parcelable接口传递对象。2.获取对象User user = (User) intent.getSerializableExtra(“user”);要求被传递的对象必须实现上述2种接口中的一种才能通过Intent直接传递。我们看出,已经从对象集合中取出对象了!转载 2018-08-22 11:48:40 · 1511 阅读 · 1 评论 -
Activity之间进行传值的方式以及Activity的回传值(补充版)
1、使用Intent进行Activity传值1)使用setClass方法来制定我们要跳转的ActivityIntent intent=new Intent(this,SecondActivity.class);intent.putExtra(key,value);startActivity(intent);//或者Intent intent=new Intent();intent...原创 2018-08-20 09:44:10 · 1197 阅读 · 0 评论 -
EventBus的学习
EventBus是一种用于Android的发布/订阅事件总线。它有很多优点:简化应用组件间的通信;解耦事件的发送者和接收者;避免复杂和容易出错的依赖和生命周期的问题;很快,专门为高性能优化过等等。EventBus是一种用于Android的发布/订阅事件总线。使用EventBus可以简化应用组件间的通信,可以解耦事件的发送者和接收者。参考2)3)转载 2018-08-23 11:43:02 · 179 阅读 · 1 评论 -
Android5.0后服务禁止使用隐式启动
1、android5.0以后不能使用隐式意图启动Service可以使用一下两种方法:方法一:Intent serviceIntent = new Intent();serviceIntent.setActio("你的服务action");serviceIntent.setPackage(你的应用的包名");context.startService(serviceIntent);...原创 2018-08-23 14:26:46 · 237 阅读 · 0 评论 -
跨进程调用Service(AIDL Service的使用)
一、概述AIDL 意思即 Android Interface Definition Language,翻译过来就是Android接口定义语言,是用于定义服务器和客户端通信接口的一种描述语言,可以拿来生成用于IPC的代码。从某种意义上说AIDL其实是一个模板,因为在使用过程中,实际起作用的并不是AIDL文件,而是据此而生成的一个IInterface的实例代码,AIDL其实是为了避免我们重复编写代...原创 2018-08-30 23:24:00 · 662 阅读 · 0 评论 -
android四大组件-----BroadcastReceiver的认识
BroadcastReceiver的概念1、系统在产生某个事件时发送广播,应用程序使用广播接收者接收这个广播,就知道系统产生了什么事件2、本质上是全局的监听器,监听全局的广播消息(网络变化、收发短信、电量改变等等)BroadcastReceiver的作用1、监听 / 接收 应用App发出的广播消息,并 做出响应BroadcastReceiver的生命周期1、从创建后对象...原创 2018-08-27 23:23:29 · 1080 阅读 · 0 评论 -
Android理解:显式和隐式Intent
Intent是Android初学者比较难理解的一个东西。我这里以通俗易懂的语言和通俗易懂的代码,让初学者简单感受一下Intent。intent就是意图的意思。。转载 2018-08-28 16:59:32 · 729 阅读 · 1 评论 -
android四大组件-----Service的认识(IntentService的使用)
service的概念1、service组件是可执行的程序,也是有自己的生命周期,是四大组件常用组件之一。创建、配置service和Activity的过程相似service的作用1、Service非常适用于去执行那些不需要和用户交互而且还要长期运行在后台的任务service的特点1、Service默认线程为UI线程,不要在Service中执行耗时的操作,除非你在Service中创...原创 2018-08-28 23:44:14 · 780 阅读 · 1 评论 -
android几种网络框架的比较
Android常用的网路框架: 大多数应用程序基本都需要连接网络,发送一些数据给服务端,或者从服务端获取一些数据。通常在 Android 中进行网络连接一般使用 Scoket 和HTTP,HTTP 请求方式比 Scoket 多得多。HTTP 请求一般采用原生的 HttpClient 和 HttpUrlConnection 的两种网络访问方式。可是在 Android 5.0 的时候...转载 2018-08-31 10:52:55 · 936 阅读 · 0 评论 -
Android 多线程:AsyncTask最详细使用教程
多线程的应用在Android开发中是非常常见的,常用方法主要有:继承Thread类实现Runnable接口HandlerAsyncTask今天,我将献上一份AsyncTask使用教程,希望大家会喜欢一个Android 已封装好的轻量级异步类属于抽象类,即使用时需 实现子类. . . }AsyncTask类属于抽象类,即使用时需 实现子类。原创 2018-09-04 10:17:18 · 584 阅读 · 1 评论 -
Android线程池机制
一、概述&amp;amp;nbsp;1、ThreadPoolExecutor作为java.util.concurrent包对外提供基础实现,以内部线程池的形式对外提供管理任务执行,线程调度,线程池管理等等服务;&amp;amp;nbsp;2、Executors方法提供的线程服务,都是通过参数设置来实现不同的线程池机制。&amp;amp;nbsp;3、先来了解其线程池管理的机制,有助于正确使用,避免错误使用导致严重故障。同时可以根据自己的需求实现...转载 2018-09-04 11:12:10 · 166 阅读 · 0 评论 -
Android线程池机制封装
1、封装好的线程工具类/** * 线程池 * Created by zhaoliang on 2018/5/16 0016 */public class ThreadPoolManagerUtil { private int corePoolSize;//核心线程池的数量,同时能够执行的线程数量 private int maximumPoolSize;//最大线程池...原创 2018-09-04 13:47:30 · 545 阅读 · 0 评论 -
Android常用第三方框架整理
原文地址: https://blog.csdn.net/johnWcheung/article/details/72832427 ...转载 2018-09-04 22:42:32 · 596 阅读 · 0 评论 -
databinding和recyclerview的配合使用
RecyclerViewAdapter大家都不陌生,那么在使用Databinding时,RecyclerViewAdapter该如何编写呢?本文用一个邮箱类型列表作为案例,来讲解在使用Databinding时如何编写RecyclerViewAdapter,并且如何有效的封装RecyclerViewAdapter。本文原文博主地址: https:...转载 2018-09-05 14:51:20 · 6821 阅读 · 6 评论 -
android-apt切换为官方annotationProcessor(项目配置dagger2和databinding报错)
android-aptAndroid Gradle插件2.2版本发布后,Android 官方提供了annotationProcessor来代替android-apt,annotationProcessor同时支持 javac 和 jack 编译方式,而android-apt只支持 javac 方式。同时android-apt作者宣布不在维护,当然目前android-ap...原创 2018-09-05 14:59:00 · 413 阅读 · 0 评论