- 博客(200)
- 收藏
- 关注
原创 代码取消device-owner
public void removeDeviceOwner(final Context context) { try { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { if (isDeviceOwnerApp(context)) { ...
2018-11-14 11:03:05
1843
原创 Device Owner模式
1、设备已刷Device Owner模式后,可在手机上的本地—>内部存储—>Android—>data—>com.nq.mdm—>files文件夹下会有uem-config.config文件存在同时也会收到一条UEM的推送2、如果手机上有其它的Device Owner,则会刷不成功3、刷了Device Owner的UEM怎么删除掉 1)在刷Dev...
2018-11-14 11:01:38
4486
1
原创 Android 数据结构
一、Android常见数据结构&优缺点。 数组优点:查询快,如果知道索引可以快速地存取缺点:删除慢,大小固定有序数组优点:比无序数组查找快缺点:删除和插入慢,大小固定栈优点:提供后进先出的存取方式缺点:存取其他项很慢队列优点:提供先进先出的存取方式缺点:存取其他项都很慢链表优点:插入快,删除快缺点:查找慢(一个个节点查)二叉树优点:查找,插入,删除都快(平衡二叉树)缺点:删除算法复杂红-黑...
2018-05-23 16:41:53
530
原创 Android 常用算法
1.插入排序算法插入排序的基本思想是在遍历数组的过程中,假设在序号 i 之前的元素即 [0..i-1] 都已经排好序,本趟需要找到 i 对应的元素 x 的正确位置 k ,并且在寻找这个位置 k 的过程中逐个将比较过的元素往后移一位,为元素 x “腾位置”,最后将 k 对应的元素值赋为 x ,一般情况下,插入排序的时间复杂度和空间复杂度分别为 O(n2 ) 和 O(1)。12345678910111...
2018-05-23 16:36:49
1309
1
原创 自己做的apk遇到的难点及知识点总结
1、常亮屏,不黑屏;2、锁屏自启动,演示apk;------注意必须动态广播3、viewpager的动画效果【pagerTransformer】;4、activity的切换效果【transition】;
2018-03-23 15:30:21
385
原创 Android炫酷的切换效果【transition】
网址:https://blog.youkuaiyun.com/abcwang1234/article/details/53638484ViewAnimationUtils类中的CircularReveal参数说明:Animator createCircularReveal (View view, // 将要变化的 View int centerX, /...
2018-03-23 15:26:09
565
原创 viewpager的动画
网址:http://android.jobbole.com/81083/ZoomOutPageTransformer 当在相邻界面滑动时,这个page transformer使页面收缩并褪色。当页面越靠近中心,它将渐渐还原到正常大小并且图像渐入。Depth Page Transformer这个page transformer使用默认动画的屏幕左滑动画。但是为右滑使用一种“潜藏”效果的动画。潜藏动画...
2018-03-23 15:24:14
328
原创 锁屏后会自动唤醒并播放----遇到的问题及解决方案
1、保证屏幕常亮,不暗屏、黑屏方法一:xml配置在res/values/style.xml中添加一个style,如下:<!--设置屏幕常亮--><style name="ThemeScreenOn" parent="AppTheme"> <item name="android:keepScreenOn">true</item>
2018-03-22 19:18:17
1844
原创 Android 判断是否是Rtl
第一种方法:private boolean isRtl() {return TextUtils.getLayoutDirectionFromLocale(Locale.getDefault()) == View.LAYOUT_DIRECTION_RTL;}第二种方法:/*** Check to see if the current layout is Right-to-
2018-01-25 16:39:46
3680
原创 内存泄漏--抓取.hprof文件的方法总结
1、AS抓取文件 (1)遇到的问题及解决:(1-1)android studio no debuggable processes(1-2)解决办法(a)Tools->Android->勾选上Enable ADB Integration(b)重新布置app (2)下图为用as抓取hprof文件中Monitors-----》Memory中的按钮含义 点击可以开始或者暂停内存检测的按钮。 点击相当
2018-01-18 18:07:21
47715
2
转载 探究Android的冷启动优化
本文依据平台如下机型: 魅蓝Note(高通615真八核/2G/1080P/4.4)效果:1.1s -> 0.7s(实际用户看到的假界面时间更短)检测网站: https://nimbledroid.com,是 @程序亦非猿 推荐的哦1. 启动过程概述在应用层,普通APP启动过程大致如下:加载Application静态代码段/构造函数onCreate方法加载主Activi
2018-01-08 16:05:29
487
原创 Android冷启动时间的优化
原文出处:http://blog.waynell.com/android/2015/11/17/android-cold-start.html 冷启动时间是指当用户点击你的app那一刻到系统调用Activity.onCreate()之间的时间段。在这个时间段内,WindowManager会先加载app主题样式中的windowBackground做为app的预览元素,然后再真正去加载
2018-01-08 16:03:09
995
原创 内存泄漏注意几点
1、activity ---解决内存泄漏==》替换为---> application (dialog必须是Activity的context) 注解:activity中的this替换为application.getInstances=====【public static CalculatorApplication getInstances() {return mInstances;}
2018-01-08 16:00:08
342
原创 Android Studio SVN配置忽略文件
Android Studio SVN配置忽略文件 gitignore在Setting------》Plugins-------》(输入要安装的插件(gitignore))----》安装 重启Studio1.用Android Studio创建一个项目,会在根目录和Module目录下自动生成.gitignore文件,貌似是Git的配置文件,和SVN没有关系。
2018-01-05 11:58:32
426
转载 前端学习路线
先附上一张网上广为流传的前端知识体系图:前端知识体系从大图中我们总结出:优秀的Web前端开发工程师 要在知识体系上既要有 广度 和 深度!应该具备快速学习能力。前端开发工程师 不仅要掌握基本的Web前端开发技术,网站性能优化、SEO和服务器端的基础知识,而且要学会运用各种工具进行辅助开发以及理论层面的知识,包括代码的可维护性、组件的易用性、分层语义模板和浏览器分级支持等。
2017-12-15 12:03:12
352
原创 TabLayout的使用及注意事项(背景色+文字的大小)
1、需要在build中添加引用的包compile 'com.android.support:design:25.2.0'//TabLayout2、布局: android:layout_width="match_parent" android:layout_height="match_parent" android:background="@co
2017-11-29 16:51:16
2443
翻译 dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算
一、基本概念dip : Density independent pixels ,设备无关像素。dp :就是dippx : 像素dpi :dots per inch , 直接来说就是一英寸多少个像素点。常见取值 120,160,240。我一般称作像素密度,简称密度density: 直接翻译的话貌似叫 密度。常见取值 1.5 ,
2017-11-27 12:32:20
1162
翻译 Android中各种Span的用法
Android中各种Span的用法前言SpannableStringBuilderURLSpanUnderlineSpanTypefaceSpanTextAppearanceSpanTabStopSpanStandardSuperscriptSpanSubscriptSpanStrikethroughSpanScaleXSpanStyleSpanRelativeSizeSpanQuoteS
2017-11-25 13:08:52
1426
翻译 Android中的菜单OptionsMenu,ContextMenu和PopupMenu
一、ContextMenu的使用方法以及与OptionMenu的区别>> ContextMenu是android的context menu上下文菜单,选择某项VIEW后长按menu键,就会显示出来。比如EditeText就可以通过长按来弹出拥有“cut”,"copy","paste"等项的ContextMenu。实现ContextMenu,一般要用到以下三个方法:(
2017-11-10 12:08:56
2879
翻译 Android文本测量
如果你开始在Android的Canvas上人工绘制事物,你极有可能同时也会面临文本的绘制。当你这样做的时候,需要知晓放置文本的具体位置,而要做到这一点,你需要测量出文本的开始位置的x/y轴坐标。最近在一款app中我需要在Canvas上绘制同时满足水平与竖直居中的文本,所以我从以下代码开始着手:Paint mTextPaint = new Paint();mTextPaint.setTex
2017-11-10 11:32:54
464
原创 Paint类measureText与getTextBounds的区别
在使用Canvas绘制文字时,需要得到字符串的长度,Paint类内给了两个方法,measureText(),getTextBound();可是对于同于字符串两个方法得出来的值有些差别:getTextBounds() 得到的宽度总是比 measureText() 得到的宽度要小一点。就查看方法的源码getTextBounds():measureText():
2017-11-10 11:15:09
3643
转载 Android中的简单的launcher介绍
一、launcher的主要文件和类1.Launcher.java:launcher中主要的activity。2.DragLayer.java:launcher layout的rootview。DragLayer实际上也是一个抽象的界面,用来处理拖动和对事件进行初步处理然后按情况分发下去,角色是一个controller。它首先用onInterceptTouchEvent(Mo
2017-10-25 10:38:34
1203
转载 Android中GreenDao3.0详解
1. 什么是greenDao弄明白greenDao之前我们应该先了解什么是ORM(Object Relation Mapping 即 对象关系映射),说白了就是将面向对象编程语言里的对象与数据库关联起来的一种技术,而greenDao就是实现这种技术之一,所以说greenDao其实就是一种将java object 与SQLite Database关联起来的桥梁,它们之间的关系 如下图所示;
2017-10-24 18:06:24
757
原创 Android 中GreenDao3.0简单使用
关于GreenDaogreenDao是一个将对象映射到SQLite数据库中的轻量且快速的ORM解决方案。关于greenDAO的概念可以看官网greenDAOgreenDAO 优势1、一个精简的库2、性能最大化3、内存开销最小化4、易于使用的 APIs5、对 Android 进行高度优化GreenDao 3.0使用GreenDao 3.0采用注解的方式来定义实体类,通过gradl
2017-10-24 18:05:12
311
原创 RecyclerView打造可拖拽的GridView使用ItemTouchHelper
网址:http://blog.youkuaiyun.com/liaoinstan/article/details/51200618以下是RecyclerView结合ItemTouchHelper实现的列表和网格布局的拖拽效果。效果图如下:(gif图有点顿卡,其实运行是很流畅的)demo下载地址: DragRecyclerView如何实现那么是如何实现的呢?主要就要使
2017-10-19 16:38:10
314
原创 Android中的事件分发----DOWN、MOVE和UP
关于ACTION_MOVE 和 ACTION_UP上面讲解的都是针对ACTION_DOWN的事件传递,ACTION_MOVE和ACTION_UP在传递的过程中并不是和ACTION_DOWN 一样,你在执行ACTION_DOWN的时候返回了false,后面一系列其它的action就不会再得到执行了。简单的说,就是当dispatchTouchEvent在进行事件分发的时候,只有前一个事件(如ACT
2017-09-23 10:47:52
4486
1
翻译 属性动画(ObjectAnimator)源码分析
属性动画的集成关系Paste_Image.png看一段属性动画的使用代码ObjectAnimator animator=ObjectAnimator.ofFloat(image,"rotationX",0f,360f); animator.setDuration(2000);//执行时间 animator.setInterpolator(new Li
2017-09-20 16:53:19
666
原创 View的工作原理
重要知识点三个过程measure:测量View的宽和高layout:确定View在父控件中的放置位置draw:负责将View绘制在屏幕上。几个常用回调方法构造方法onAttachToWindow:在包含View的Activity启动时调用onDetachFromWindow:在包含View的Activity退出或者View被remove时回调onVi
2017-09-12 16:21:50
416
原创 AndroidStudio统计项目中的代码量
公司自己的项目,在申请版权的时候,在“计算机软件著作权登记申请表”中需要填写项目的代码量,于是网上查找了资料发现很多都说的是AndroidStudio展示当前行号什么的,并不是真正的统计项目的代码量。有一些资料中提到了Statistic这个插件,这个插件还是很好用的,下面就把使用的方式和大家分享一下: 插件下载地址:链接:http://pan.baidu.com/s/1dFufkuX 密
2017-09-12 11:38:12
610
原创 View 工作原理(一)
前言本文参考《Android 开发艺术探索》及网上各种资料进行撰写,目的是为自己理清 Android 中 View 的工作原理,复习学习内容,为后期阅读开源自定义 View 源码做好准备,深入学习可查看参考资料中的内容。基本概念本节介绍两个基本概念,为理解后面小节内容预热。DecorViewDecorView 是 Window 中 View 的顶层 View,其结构如下所示:
2017-09-11 16:19:21
273
翻译 Android事件分发机制详解:史上最全面、最易懂
前言Android事件分发机制是每个Android开发者必须了解的基础知识网上有大量关于Android事件分发机制的文章,但存在一些问题:内容不全、思路不清晰、无源码分析、简单问题复杂化等等今天,我将全面总结Android的事件分发机制,我能保证这是市面上的最全面、最清晰、最易懂的本文秉着“结论先行、详细分析在后”的原则,即先让大家感性认识,再通过理性分析从而理解问题;所以
2017-09-08 14:25:37
380
原创 点击事件透传机制
点击屏幕的事件传递是:Activity将事件交给 所属的Window,如果返回true,整个事件循环就结束了,返回false意味着事件没人处理,所有view的onTouchevent ,都反回了false,那么Activity的onTouchevent就会被调用。window会将事件传递给decorView(viewgroup)window可以控制顶级View的外观和行为策
2017-09-08 12:08:29
4784
原创 修改TabLayout下划线的宽度和文字和线的距离
1、写个工具类 封装:import android.content.res.Resources;import android.support.design.widget.TabLayout;import android.util.TypedValue;import android.view.View;import android.widget.LinearLayout;import
2017-09-04 10:53:00
10355
原创 Android权限之sharedUserId和签名
最近在做个东西,巧合碰到了sharedUserId的问题,所以收集了一些资料,存存档备份。 安装在设备中的每一个apk文件,Android给每个APK进程分配一个单独的用户空间,其manifest中的userid就是对应一个Linux用户都会被分配到一个属于自己的统一的linux用户ID,并且为它创建一个沙箱,以防止影响其他应用程序(或者其他应用程序影响它)。用户ID 在应用程序安装
2017-09-01 15:19:38
709
翻译 完美的sharedPreference工具类
github上大神们开源的各种Android工具类https://github.com/android-quick-dev/NonViewUtils这篇记录下SPUtil工具类。首先构建一个内部类,该类的作用是优先使用SharedPreferences的apply方法,如果找不到则使用commit方法。这两个方法的区别在于:apply没有返回值而commit返回boolean表
2017-08-24 10:24:06
486
翻译 Design库-TabLayout属性详解
序上图是简书Android端的主页Tab,在其他的App中Tab也是很常见的,它的实现方式也有很多:TabHost,自定义控件(第三方库),RadioGroup等等。这里主要介绍Android Design库中的TabLayout的使用。1.什么是TabLayout在源码中给出了TabLayout的定义:TabLayout provides a horizontal
2017-08-22 18:25:07
300
原创 Android注解--@hide
@hide当对包,类,方法和域使用时,@hide从文档中删除相关节点和所有子节点。Android有两种不能通过SDK访问的API。第一种是在com.android.internal包中的类。 第二种API类型是标记有@hide javadoc属性的类和方法的集合。隐藏方法仍可以通过反射访问。@hide属性只是javadoc的一部分(droiddoc也是),所以@hide只是简单
2017-08-11 11:23:08
1660
转载 Android应用Preference相关及源码浅析(Preference组件家族篇)
1 前言前一篇(点我阅读前一篇《Android应用Preference相关及源码浅析(SharePreferences篇)》)我们讨论分析使用了Android的SharePreferences,相信看过的朋友都有了自己的感悟与理解,这一篇我们继续乘热打铁来说说SharePreferences的衍生品—-Preference组件。其实Preference组件大家一定不陌生,因为android
2017-08-04 11:30:13
770
原创 Android成长之路-BaseExpandableListAdapter的用法
BaseExpandableListAdapter是ExpandableListAdapter的抽象基类,从一些数据中提供数据和视图给可折叠列表视图。例子详解:首先定义一个xml布局文件:xml version="1.0" encoding="utf-8"?> LinearLayout xmlns:android="http://schemas.android.com/apk
2017-07-04 18:15:09
548
原创 android 中 系统日期时间的获取
方法一:SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); Date curDate = new Date(System.currentTimeMillis());//获取当前时间 String str = formatter.format(curDate
2017-06-30 15:49:20
450
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人