
Android
缘始123
这个作者很懒,什么都没留下…
展开
-
Android应用内用其他应用打开文档
打开文档 private void openFile(File file) { try { Log.e("文件名", file.getName()); Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);...原创 2018-08-17 13:54:17 · 2974 阅读 · 1 评论 -
Java注解处理器---------编译时注解
常见的几个API:Name simpleName = element.getSimpleName();//注解的元素名称//如果元素在{}内,则返回类名称。如果这是顶级类型,则返回其包。如果这是一个包,null则返回。如果这是一个类型参数, 则返回参数类型。element.getEnclosingElement();ClassName className = ClassName.ge...原创 2019-03-25 16:15:06 · 424 阅读 · 0 评论 -
Android组件化开发初探
组件化项目需求的不断变更,项目越来越大,代码越来越臃肿,耦合度越来越高,导致开发效率下降。为了解决这一问题,最开始模块化,划分为多个模块进行开发,由于项目过大,每次打包编译特别慢,测试不方便,然后对每个模块进行拆分,实现组件化。这样做的一个好处,各个业务组件可以单独拿出来测试,减少了每次打包时的编译耗费时间,开发人员可以单独负责自己的业务组件。组件各个模块配置android studio...原创 2019-02-14 17:01:53 · 307 阅读 · 0 评论 -
线程池 --------常见的四中线程池
由于线程的频繁调度,而影响性能,通过线程池来维护,减少线程的频繁的创建和销毁。在Executors统一管理:1.newFixedThreadPool:创建定长的线程池,超出定长在线程队列中等待。 public static ExecutorService newFixedThreadPool(int nThreads) { return new ThreadPoolExecu...原创 2018-12-20 11:04:39 · 523 阅读 · 0 评论 -
webview长按点击实现弹出菜单栏
最近有一个需求,当长按点击webview,弹出菜单栏,这是系统默认的有复制,全选,搜索等功能,而不能满足公司需求,同时公司需要将分享和搜索功能去掉,添加自己的菜单:添加自己的功能,自定义webview,复写下边两个方法:@Overridepublic ActionMode startActionMode(ActionMode.Callback callback) { Ac...原创 2018-12-06 14:28:50 · 2954 阅读 · 2 评论 -
LinkedList源码分析
在源码中我们可以看到,LinkedList继承AbstractSequentialList,并且实现了List<E>, Deque<E>反而ArrayList不一样,他继承AbstractList,这就可以看出LinkedList内部以队列的方式来访问数据的。看一下初始化数据: transient int size = 0;//大小 transient N...原创 2018-11-27 10:22:21 · 125 阅读 · 0 评论 -
Android 官方架构组件之 Lifecycle的学习
Lifecycle:官方介绍Lifecycle is a class that holds the information about the lifecycle state of a component (like an activity or a fragment) and allows other objects to observe this state.Lifecycle uses ...原创 2018-11-07 16:03:02 · 313 阅读 · 0 评论 -
源码分析LiveData根据其生命周期自动处理数据
在官方文档中是这样说的:LiveData是一个可观察的数据持有者类。与常规observable不同的是LiveData可以关联Activity,Fragment,Services的生命周期。保证了当在组件的生命周期的发生变化是LiveData会发生更新。使用LiveData的优点有:1.确保了数据源与UI的一致: LiveData遵循观察者模式。Observer生命周期状态更改时,LiveD...原创 2018-11-13 15:08:52 · 2004 阅读 · 0 评论 -
Lifecycle源码分析
Lifecycle如何检测生命周期Lifecycle是一个抽象类,它里面定义了三个抽象方法,两个枚举类型,其中三个抽象方法通过注解的形式表示在主线程中,Lifecycle的源码:public abstract class Lifecycle { public Lifecycle() { } @MainThread public abstract void a...原创 2018-11-09 10:53:32 · 260 阅读 · 0 评论 -
写属于自己的Dialog
在每个App都有自己风格Dialog,如何渲染自己的Dialog,也许有的还在继承Dialog,实现Dialog,如果单独继承Dialog,设置圆角的样式时,要在Androidmanifest.xml文件中进行配置,而Android提供了DialogFragment,可以直接继承这个,实现属于自己的Dialog。实现如下:public class BaseDialog extends Di...原创 2018-08-23 14:37:35 · 362 阅读 · 0 评论 -
Adapter条目设置布局参数
首先获取像屏幕素点:DisplayMetrics dm = context.getResources().getDisplayMetrics();int widthPixels = dm.widthPixels;对于条目通过布局参数设置ViewGroup.LayoutParams layoutParams = holder.ln_root.getLayoutParams();i...原创 2018-08-23 13:35:36 · 399 阅读 · 0 评论 -
flutter与原生如何进行交互
flutter与原生如何进行交互Flutter 主动调用原生flutter端代码Android端IOS端原生如何主动调用FlutterAndroid端IOS端Flutter处理原生调用Flutter 主动调用原生当flutter主动调用原生时,flutter与原生之间必须建立一个通道,然后通过此通道进行通信。flutter端代码/* 通道名称,必须与原生注册的一致*/ static c...原创 2019-09-27 15:05:15 · 3307 阅读 · 3 评论