Android
竹丶墨
博客:https://hzyjoel.gitee.io/gitbook/
展开
-
Android界面性能优化
界面性能优化监控指标:在Activity跳转过程中,在上一个Activity的onStop方法和下一个Activity的OnResume期间对用户来说是空白的,假如这段时间过长,就会感觉卡顿,当然OnResume这个时机也不太准确,更准确的是OnResume中创建ViewRootImpl后触发的下一个Vsnc信号导致的绘制流程结束。卡顿解决策略:跳转过程中主线程任务的耗时,导致Looper处理onStop到OnResume的时间变长,可以通过Looper的logger日志插桩每个message的处原创 2021-03-14 11:07:01 · 388 阅读 · 1 评论 -
使用自定义ItemDecoration的各种姿势
自定义ItemDecoration实现间距:1.继承RecyclerView.ItemDecoration重写其getItemOffsets方法:override fun getItemOffsets(outRect: Rect, view: View, parent: RecyclerView, state: RecyclerView.State) 其中第一个参数outRect为Decoration间距的距离4个方向的距离,在RecycleView布局时会加载itemView的padding上原创 2020-07-05 16:31:19 · 788 阅读 · 0 评论 -
Binder使用
Binder使用AIDL实现1.新建aidl包、新建需要传输的自定义类(实现Parcelable)package com.example.aidltest.aidl;/*** Created by joel.* Date: 2019/6/7* Time: 15:56* Description:*/import android.os.Parcel;import android.o...原创 2020-03-01 20:46:07 · 372 阅读 · 1 评论 -
AIDL使用
AIDL用于不同进程间的信息传递,要让Activity或其他组件另开进程可以在AndroidManifest.xml的其子节点中加process属性:<activity android:name=".NAcy" android:process=":other"/>1、在不同进程传递数据时,自定义的类要实现Parcelable接口,这个类需要在包下新建一个aibl的包,目录结构如...原创 2019-04-04 20:13:33 · 180 阅读 · 0 评论 -
自定义注解
1、创建注解类(Target注解是值注解的对象,FIELD是属性,METHOD是方法,指该注解用来注解属性或方法,Retention指注解优先级,指定注解有效时机),注解类中有一个方法int value()指接收一个int的参数,另一个int[] value()指接收int数组参数@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNT...原创 2019-04-04 20:10:01 · 228 阅读 · 0 评论 -
热修复原理
生成dex包1、先通过修改环境变量的方法将jdk版本切换至1.7 使用cmd命令 javac 要编译的java文件生成class文件 javac -d ./ java文件(会自动根据包名生成目录)在java文件处执行2、修改回原来的1.8版本 执行dx --dex --output=目标名.dex ./包名+上一步生成的.class (在java文件处执行)生成dex文件3、将其导入...原创 2019-04-04 20:07:37 · 481 阅读 · 0 评论 -
过场动画实现
界面Activity切换滑动的效果实现:1.在styles.xml文件中添加下面一行代码,表示激活Activity中元素的过渡效果:<item name="android:windowContentTransitions">true</item> 2.启动Aty2代码:startActivity(new Intent(this, Main2Activity.cla...原创 2019-04-04 20:04:54 · 709 阅读 · 0 评论 -
插件化原理
插件化原理插桩法实现:使用一个已注册的Activity为壳,加载apk中的Activity1、定义接口,用于传递上下文和生命周期public interface PluginAtyInterface { public void onCreate(Bundle savedInstanceState); public void onDestroy(); ...原创 2019-04-04 20:02:48 · 847 阅读 · 0 评论 -
网络数据请求框架的实现
一般来说实现网络请求只需要使用HttpURLConnection实现连接读取数据流即可,但是代码太过冗余,不可能每次都手写一份,并且每次的需求有可能不同。在现有的许多优秀的开源框架如volley等的网络通信框架也有许多,自己找了些资料,手撸了一份代码简单实现了一下基本的框架。 下面是使用的示例,只需要几行代码就可以实现对服务器端数据的读取及使用(并且得到的数据能在主...原创 2018-06-19 18:01:08 · 501 阅读 · 0 评论 -
2018优秀的开源框架
程序员界有个神奇的网站,那就是github,这个网站集合了一大批优秀的开源框架,极大地节省了开发者开发的时间,在这里我进行了一下整理,这样可以使我们在使用到时快速的查找到,希望对大家有所帮助!1. Retrofit 一句话介绍:Retrofit是一款类型安全的网络框架,基于HTTP协议,服务于Android和java语言上榜理由:Retrofit以21.8k的stars量雄踞github中and...转载 2018-06-16 18:53:28 · 8478 阅读 · 0 评论 -
CoordinatorLayout的使用
使用CoordinatorLayout需要在Gradle加入Support Design Library:compile 'com.android.support:design:22.2.1'CoordinatorLayout的使用核心是Behavior,Behavior就是执行你定制的动作。在讲Behavior之前必须先理解两个概念:Child和Dependency,什么意思呢?Child当然是...转载 2018-06-13 17:34:32 · 203 阅读 · 0 评论 -
低版本实现DatepickerDialog效果
低版本无法使用DatepickerDialog可以将Datepicker嵌入到对话框实现AlertDialog.Builder builder = new AlertDialog.Builder(this);View view = View.inflate(this, R.layout.setmessage_aty_datedialog, null);final DatePicker datePi...转载 2018-06-13 17:32:54 · 722 阅读 · 0 评论 -
Activity场景切换效果的实现以及Scene切换和共享元素的实现
界面Activity切换滑动的效果实现:1. 在styles.xml文件中添加下面一行代码,表示激活Activity中元素的过渡效果:<item name="android:windowContentTransitions">true</item> 2.启动Aty2代码:startActivity(new Intent(this, Main2Activity.class)...原创 2018-06-13 17:31:29 · 706 阅读 · 0 评论 -
新建API26工程报错
androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' 这两个依赖里面都自带了com.android.support:support-annotation...转载 2018-06-13 17:29:42 · 238 阅读 · 0 评论 -
自定义对话框的实现
使用showdialog(int id) 传入一个唯一标识ID号重写oncreateDialog(int id)方法,此方法的id是showdialog传入的id,可以根据这个ID创建不同类型的Dialog Dialog的创建AlertDialog.Builder B=new AlertDialog.Builde(context);b.setIcon(int);//预设图片标题等操作B.setp...原创 2018-06-13 17:26:02 · 1160 阅读 · 0 评论 -
XML文件名称及其资源节点
资源文件夹名称:Animator: 用xml定义的Property 动画 Anim: xml定义View动画 Color :颜色状态列表 Drawble :可绘制对象资源或图片文件 Layout :xml定义的布局 Menu:用xml定义的菜单 Mipmap: 启动图标等 Raw: 原始文件如音频文件和自定义字节代码 values: 用xml定义的值如字符串,浮点和整数色值 Xml资源节点: ...原创 2018-06-13 17:23:24 · 788 阅读 · 0 评论 -
android studio 一些比较实用 的快捷键设置
打***的是比较常用的快捷键 1.Ctrl+E,可以显示最近编辑的文件列表 2.Shift+Click可以关闭文件 3.Ctrl+[或]可以跳到大括号的开头结尾 4.Ctrl+Shift+Backspace可以跳转到上次编辑的地方 5.Ctrl+F12,可以显示当前文件的结构 6.Ctrl+F7可以查询当前元素在当前文件中的引用,然后按F3可以选择 7.Ctrl+N,可以快...转载 2018-06-13 17:19:18 · 171 阅读 · 0 评论