- 博客(58)
- 资源 (28)
- 收藏
- 关注
原创 LiveData+ViewModel用法2:多页面监听同一个状态
1.创建ViewModelpublic class SingletonViewModel extends ViewModel { private SingletonLiveData content; public SingletonLiveData getContent() { if (content == null) { content ...
2019-02-14 17:26:55 3785 5
原创 LiveData+ViewModel用法1:获取数据
之前一直使用MVP开发。刚上班看一下MVVM。LiveData+ViewModel确实比较给力,但看到databinding感觉xml写法复杂了很多,先记录下LiveData配合ViewModel使用。LiveData 优点不会再产生由于Activity处于stop状态而引起的崩溃。如果观察者的生命周期是不活跃的,例如 activity 处于后台,那么将不会收到任何 LiveData 事件。...
2019-02-14 16:49:57 5895 2
原创 android屏幕百分比适配
第一步,明确一点,渲染View的时候都是以px作为单位。第二步,拿到得到缩放比例。以宽度缩放为例,设计图宽度基准为720x1280,按钮宽度为360px。那么在1280x1920上,比例就是1280/720=1.5, 希望最终按钮的宽度应该是1.5x360=540。第三步,也是最后一步,如何实现1.5倍的缩放。分两个层面: View层面上,通过设置LayoutParams.width直接...
2019-02-13 12:36:38 1491
原创 HashMap小结
1.底层是数组2.每个数组元素是一个链表3.数组长度一定是2的n次幂4.储存原理:<1>获取hash值:h =hash(key.hashCode())<2>根据hash值获取在数组的位置,采用经典的取模运算: index = h & (2n-1)<3>根据下标取得链表,将元素插在链表头部5.读取原理<1&a
2019-01-12 15:02:00 483
原创 悬浮窗显示在屏幕外
最近需要实现一个特殊的需求,用到WindowManager的一个不经常用的flag,FLAG_LAYOUT_NO_LIMITS,允许窗口扩展到屏幕之外。https://blog.lixplor.com/2015/10/06/android-window-manager/...
2018-10-29 15:43:00 2890
原创 android 7.0 root下静默安装
公司产品基于7.0开发,需要实现覆盖升级。之前的产品覆盖升级基于5.1系统,在7.0上不起作用。网上参考了许多博客。最终稀里糊涂的成功了,简单记录。核心代码只有一句String command = "pm install -r -i 包名 --user 0 apk路径";execInstallCommand(new String[]{command}) public static v...
2018-10-18 17:01:38 1499
原创 flutter获取状态栏高度
获取状态栏高度import 'dart:ui';MediaQueryData.fromWindow(window).padding.top系统默认的appBar等高度位于Dart Packages/flutter/src/material/constans.dart/// The height of the toolbar component of the [AppBar]...
2018-09-11 17:58:12 17821
原创 LitePal一对一、多对一、多对多
参考:https://www.jianshu.com/p/bc68e763c7a2一对一一个boy对应一个girl,相应地一个girl对应一个boyBoy类: public class Boy extends DataSupport { private int id; private Girl girl; privat...
2018-03-26 11:59:37 2703 1
原创 GreenDao数据库升级添加int字段报错问题
GreenDao数据库升级时添加int类型的字段出现问题,报错。 在网上找了一个版本: https://blog.csdn.net/yingtian648/article/details/56672559 测试之后还是报错,对代码稍加改动,经测试可以正常添加int字段。import android.database.Cursor;import android.text.TextUtil...
2018-03-25 20:11:13 1388
原创 android系统刷新机制
整理一下android系统的刷新机制参考: Android 屏幕刷新机制: https://www.jianshu.com/p/0d00cb85fdf3 Android应用层View绘制流程与源码分析 https://blog.csdn.net/yanbober/article/details/46128379一般刷新包括View.postInvalidate到最后都是走到View...
2018-03-22 23:34:41 1389
原创 android知识(三)
题目来源: https://www.jianshu.com/p/c70989bd5f29Android各个版本API的区别谈谈对Volley的理解描述一次网络请求的流程ActivityThread,AMS,WMS的工作原理AsyncTask+HttpClient 与 AsyncHttpClient有什么区别?Android线程有没有上限?参考:...
2018-03-16 13:27:57 2161 2
原创 android知识(二)
题目来源: https://www.jianshu.com/p/c70989bd5f29Requestlayout,onlayout,onDraw,DrawChild区别与联系reqeustlayout调用measure,layoutonlayout,ViewGroup用来摆放View的位置ondraw:绘制viewDrawChild:child.drawinvali...
2018-03-16 13:26:57 444
原创 android面试准备-android知识(-)
题目来源: https://www.jianshu.com/p/c70989bd5f29四大组件的生命周期和简单用法参考:https://www.cnblogs.com/bravestarrhu/archive/2012/05/02/2479461.htmlActivity生命周期Activity各种情况下的生命周期创建A:A:onCreate,on...
2018-03-11 19:57:20 343
原创 android面试题准备-Java知识
面试题来源: https://www.jianshu.com/p/c70989bd5f291.java中==和equals和hashCode的区别参考地址: http://blog.csdn.net/dove_knowledge/article/details/71027170 http://blog.csdn.net/tiantiandjava/article/details/...
2018-03-10 13:15:13 219
原创 OC 相对布局
页面里一个UITableView,然后UITableView下面有一个Button,想要实现的效果,当UITableView的高度改变时,保证Button和UITableView的竖直间距不变。 实现: 给UITableView设置高度约束,给一个默认的高度值160(因为这里初始化显示4个cell,每个高度40),然后control到 ViewController里面去,动态修改UITab...
2018-03-01 11:40:41 346
原创 android事件分发
参考文章 https://www.jianshu.com/p/d437a524c081 https://www.jianshu.com/p/d437a524c081 http://blog.csdn.net/feiduclear_up/article/details/47356429 https://www.2cto.com/kf/201606/520727.htmldispatchT...
2018-02-25 17:30:36 257
转载 OC 界面传值
界面通信:初始化界面时传值和初始化后传值。初始化传值 android上可以使用EventBus等事件总线实现消息分发,iOS有自带的NSNotificationCenter可以使用。http://blog.csdn.net/hierarch_lee/article/details/47382241...
2018-02-24 17:34:32 199
原创 OC UINavigationController使用
指定进入第一个界面UINavigationController - (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions { // Override point for customization after appli...
2018-02-24 16:25:30 1208
翻译 《android系统源代码情景分析》学习-第15章 Android应用线程的消息循环模型
1 三种消息循环模型1.1 主线程消息循环第12章最后,AMS请求Zygote创建应用程序进程后,会自动进入主线程的消息循环,也就是ActivityThread。 //创建一个主线程消息循环 Looper.prepareMainLooper(); //创建一个ActivityThread实例 ActivityThread thread = new Act...
2018-02-08 17:50:03 313
翻译 《android系统源代码情景分析》学习-第12章Android应用程序进程的启动过程
第1步 AMS.startProcessLocked()1.1 创建新应用进程的用户ID与用户组ID1.2 调用Process的静态方法start()创建新进程,指定进程入口是android.app.ActivityThread的main()方法int pid = Process.start("android.app.ActivityThread", "
2018-02-07 18:22:31 166
原创 iOS屏幕适配
最近准备学习OC,先简单地搜索一下屏幕适配,发现没有特别省事的适配方法,决定按照android适配的方法简单地写一个适配方案。希望有人可以受到启发,写出一套懒人适配方案,还请记得告诉我一下,谢谢。另外,由于接触OC不久,所以很多常识性的东西都还不懂,请见谅。来到正文,android手机的屏幕千奇百怪,推荐鸿洋大神的百分比自动适配方案: http://blog.csdn.net/lmj6235...
2018-02-06 18:36:31 2411
翻译 《android系统源代码情景分析》学习-第11章 Zygote和System进程的启动过程
第二次看这本书,推荐阅读。距离上一次看已经很久了,这一次准备断断续续的记录一下,也算是一个学习的动力吧。第11章 Zygote和System进程的启动过程Zygote进程的启动Zygote是进程孵化器,通过复制自身的方式创建 System进程和所有的应用程序进程。Linux内核加载完成后启动init进程。init读取了init.rc的脚本,里面有Zygote的启动信息。源码
2018-02-06 11:29:13 224
原创 android 用到的gradle
https://www.jianshu.com/p/03147709ea21http://www.aichengxu.com/android/2526418.htm
2018-01-31 11:52:31 118
原创 提升从A Activity 进入 B Activity的速度
1.不要在onCreate中进行耗时操作,尽可能把方法移到onWindowFocusChanged(boolean hasFocus)中进行。比如进行控件的初始化等。原理就是尽快把界面显示出来,然后再进行操作。2.不需要立即显示的UI,使用ViewStub延迟渲染。
2018-01-19 11:25:55 900
原创 android7.0使用注意点
1.获取系统图片路径或者调用系统安装apk获取apk路径时需要Manifest.xml配置FileProvider2.监听网络变化需要动态注册BroadcastReceiver
2018-01-08 14:46:05 175
转载 java从字符串中提取数字
http://www.cnblogs.com/android-html5/archive/2012/06/02/2533926.html
2017-05-08 18:33:10 7327
转载 视频帧率码率相关
内容转载自http://www.cnblogs.com/satng/p/5539154.html帧率:指的的视频每秒钟播放的图片数目,电影基本的帧率为24帧每秒(大于这个数时肉眼就看到的是流畅的视频了),二维动画的帧率为15帧每秒。帧率越小,那么你看到的视频就会越卡。动作就不连贯。码率:这个跟单帧图片的信息量有关 ,越大图片储存的信息量越大,图片就越清晰。还原的画质就越好。
2017-04-11 15:12:20 1042
原创 mac下安装python+opencv
http://www.pyimagesearch.com/2016/12/05/macos-install-opencv-3-and-python-3-5/
2017-02-24 14:54:06 711 1
原创 好用的dialog
android dialog:简直完美github :https://github.com/afollestad/material-dialogs
2017-02-17 18:01:49 496
原创 fragment懒加载小总结
总结一下fragment懒加载前提:tabLayout+viewPager+fragment,不考虑fragment销毁(我一般做法是直接覆盖掉destroyItem方法)BaseFragment中懒加载代码(网上通用的代码) :在这没有检测试图是否已经加载,可自行搜索实现,在这主要关心fragment数据的加载与刷新问题protected boolean isVisible
2016-12-08 15:31:55 523
转载 swift正则表达式
最近抓取学校教务数据,要进行网页字符串的截取,在网上找到的相关代码,很好用private func check(str:String){ // 使用正则表达式一定要加try语句 do { // - 1、创建规则// let pattern = "td width=\"
2016-07-21 13:35:44 308
转载 Android studio 使用Gradle发布Android开源项目到JCenter 总结
mark:http://www.cnblogs.com/zhaoyanjun/p/4994981.html
2016-07-17 16:20:24 515
原创 5.0全透明状态栏效果
mark://Android5.0全透明状态栏效果if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getWindow(); window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
2016-07-16 13:49:35 291
systembartint-1.0.4.jar
2016-03-18
极光推送小demo
2016-03-16
Android 向左向右滑动销毁(finish)Activity, 随着手势的滑动而滑动的效果
2015-11-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人