自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 1568

原创 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 4121 1

原创 Android 数据结构

一、Android常见数据结构&优缺点。 数组优点:查询快,如果知道索引可以快速地存取缺点:删除慢,大小固定有序数组优点:比无序数组查找快缺点:删除和插入慢,大小固定栈优点:提供后进先出的存取方式缺点:存取其他项很慢队列优点:提供先进先出的存取方式缺点:存取其他项都很慢链表优点:插入快,删除快缺点:查找慢(一个个节点查)二叉树优点:查找,插入,删除都快(平衡二叉树)缺点:删除算法复杂红-黑...

2018-05-23 16:41:53 471

原创 Android 常用算法

1.插入排序算法插入排序的基本思想是在遍历数组的过程中,假设在序号 i 之前的元素即 [0..i-1] 都已经排好序,本趟需要找到 i 对应的元素 x 的正确位置 k ,并且在寻找这个位置 k 的过程中逐个将比较过的元素往后移一位,为元素 x “腾位置”,最后将 k 对应的元素值赋为 x ,一般情况下,插入排序的时间复杂度和空间复杂度分别为 O(n2 ) 和 O(1)。12345678910111...

2018-05-23 16:36:49 1175 1

原创 自己做的apk遇到的难点及知识点总结

1、常亮屏,不黑屏;2、锁屏自启动,演示apk;------注意必须动态广播3、viewpager的动画效果【pagerTransformer】;4、activity的切换效果【transition】;

2018-03-23 15:30:21 319

原创 Android炫酷的切换效果【transition】

网址:https://blog.csdn.net/abcwang1234/article/details/53638484ViewAnimationUtils类中的CircularReveal参数说明:Animator createCircularReveal (View view, // 将要变化的 View int centerX, /...

2018-03-23 15:26:09 496

原创 viewpager的动画

网址:http://android.jobbole.com/81083/ZoomOutPageTransformer 当在相邻界面滑动时,这个page transformer使页面收缩并褪色。当页面越靠近中心,它将渐渐还原到正常大小并且图像渐入。Depth Page Transformer这个page transformer使用默认动画的屏幕左滑动画。但是为右滑使用一种“潜藏”效果的动画。潜藏动画...

2018-03-23 15:24:14 255

原创 锁屏后会自动唤醒并播放----遇到的问题及解决方案

1、保证屏幕常亮,不暗屏、黑屏方法一:xml配置在res/values/style.xml中添加一个style,如下:<!--设置屏幕常亮--><style name="ThemeScreenOn" parent="AppTheme"> <item name="android:keepScreenOn">true</item&gt

2018-03-22 19:18:17 1672

原创 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 3325

原创 内存泄漏--抓取.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 46077 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 397

原创 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 938

原创 内存泄漏注意几点

1、activity ---解决内存泄漏==》替换为---> application  (dialog必须是Activity的context)    注解:activity中的this替换为application.getInstances=====【public static CalculatorApplication getInstances() {return mInstances;}

2018-01-08 16:00:08 267

原创 Android Studio SVN配置忽略文件

Android Studio SVN配置忽略文件 gitignore在Setting------》Plugins-------》(输入要安装的插件(gitignore))----》安装 重启Studio1.用Android Studio创建一个项目,会在根目录和Module目录下自动生成.gitignore文件,貌似是Git的配置文件,和SVN没有关系。

2018-01-05 11:58:32 356

转载 前端学习路线

先附上一张网上广为流传的前端知识体系图:前端知识体系从大图中我们总结出:优秀的Web前端开发工程师 要在知识体系上既要有 广度 和 深度!应该具备快速学习能力。前端开发工程师 不仅要掌握基本的Web前端开发技术,网站性能优化、SEO和服务器端的基础知识,而且要学会运用各种工具进行辅助开发以及理论层面的知识,包括代码的可维护性、组件的易用性、分层语义模板和浏览器分级支持等。

2017-12-15 12:03:12 306

原创 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 2338

翻译 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 952

翻译 Android中各种Span的用法

Android中各种Span的用法前言SpannableStringBuilderURLSpanUnderlineSpanTypefaceSpanTextAppearanceSpanTabStopSpanStandardSuperscriptSpanSubscriptSpanStrikethroughSpanScaleXSpanStyleSpanRelativeSizeSpanQuoteS

2017-11-25 13:08:52 1262

翻译 Android中的菜单OptionsMenu,ContextMenu和PopupMenu

一、ContextMenu的使用方法以及与OptionMenu的区别>> ContextMenu是android的context menu上下文菜单,选择某项VIEW后长按menu键,就会显示出来。比如EditeText就可以通过长按来弹出拥有“cut”,"copy","paste"等项的ContextMenu。实现ContextMenu,一般要用到以下三个方法:(

2017-11-10 12:08:56 2349

翻译 Android文本测量

如果你开始在Android的Canvas上人工绘制事物,你极有可能同时也会面临文本的绘制。当你这样做的时候,需要知晓放置文本的具体位置,而要做到这一点,你需要测量出文本的开始位置的x/y轴坐标。最近在一款app中我需要在Canvas上绘制同时满足水平与竖直居中的文本,所以我从以下代码开始着手:Paint mTextPaint = new Paint();mTextPaint.setTex

2017-11-10 11:32:54 370

原创 Paint类measureText与getTextBounds的区别

在使用Canvas绘制文字时,需要得到字符串的长度,Paint类内给了两个方法,measureText(),getTextBound();可是对于同于字符串两个方法得出来的值有些差别:getTextBounds() 得到的宽度总是比 measureText() 得到的宽度要小一点。就查看方法的源码getTextBounds():measureText():

2017-11-10 11:15:09 3526

转载 Android中的简单的launcher介绍

一、launcher的主要文件和类1.Launcher.java:launcher中主要的activity。2.DragLayer.java:launcher layout的rootview。DragLayer实际上也是一个抽象的界面,用来处理拖动和对事件进行初步处理然后按情况分发下去,角色是一个controller。它首先用onInterceptTouchEvent(Mo

2017-10-25 10:38:34 1070

转载 Android中GreenDao3.0详解

1. 什么是greenDao弄明白greenDao之前我们应该先了解什么是ORM(Object Relation Mapping 即 对象关系映射),说白了就是将面向对象编程语言里的对象与数据库关联起来的一种技术,而greenDao就是实现这种技术之一,所以说greenDao其实就是一种将java object 与SQLite Database关联起来的桥梁,它们之间的关系 如下图所示;

2017-10-24 18:06:24 687

原创 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 267

原创 RecyclerView打造可拖拽的GridView使用ItemTouchHelper

网址:http://blog.csdn.net/liaoinstan/article/details/51200618以下是RecyclerView结合ItemTouchHelper实现的列表和网格布局的拖拽效果。效果图如下:(gif图有点顿卡,其实运行是很流畅的)demo下载地址: DragRecyclerView如何实现那么是如何实现的呢?主要就要使

2017-10-19 16:38:10 261

原创 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 3884 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 573

原创 View的工作原理

重要知识点三个过程measure:测量View的宽和高layout:确定View在父控件中的放置位置draw:负责将View绘制在屏幕上。几个常用回调方法构造方法onAttachToWindow:在包含View的Activity启动时调用onDetachFromWindow:在包含View的Activity退出或者View被remove时回调onVi

2017-09-12 16:21:50 340

原创 AndroidStudio统计项目中的代码量

公司自己的项目,在申请版权的时候,在“计算机软件著作权登记申请表”中需要填写项目的代码量,于是网上查找了资料发现很多都说的是AndroidStudio展示当前行号什么的,并不是真正的统计项目的代码量。有一些资料中提到了Statistic这个插件,这个插件还是很好用的,下面就把使用的方式和大家分享一下: 插件下载地址:链接:http://pan.baidu.com/s/1dFufkuX  密

2017-09-12 11:38:12 561

原创 View 工作原理(一)

前言本文参考《Android 开发艺术探索》及网上各种资料进行撰写,目的是为自己理清 Android 中 View 的工作原理,复习学习内容,为后期阅读开源自定义 View 源码做好准备,深入学习可查看参考资料中的内容。基本概念本节介绍两个基本概念,为理解后面小节内容预热。DecorViewDecorView 是 Window 中 View 的顶层 View,其结构如下所示:

2017-09-11 16:19:21 225

翻译 Android事件分发机制详解:史上最全面、最易懂

前言Android事件分发机制是每个Android开发者必须了解的基础知识网上有大量关于Android事件分发机制的文章,但存在一些问题:内容不全、思路不清晰、无源码分析、简单问题复杂化等等今天,我将全面总结Android的事件分发机制,我能保证这是市面上的最全面、最清晰、最易懂的本文秉着“结论先行、详细分析在后”的原则,即先让大家感性认识,再通过理性分析从而理解问题;所以

2017-09-08 14:25:37 322

原创 点击事件透传机制

点击屏幕的事件传递是:Activity将事件交给 所属的Window,如果返回true,整个事件循环就结束了,返回false意味着事件没人处理,所有view的onTouchevent ,都反回了false,那么Activity的onTouchevent就会被调用。window会将事件传递给decorView(viewgroup)window可以控制顶级View的外观和行为策

2017-09-08 12:08:29 4450

原创 修改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 10235

原创 Android权限之sharedUserId和签名

最近在做个东西,巧合碰到了sharedUserId的问题,所以收集了一些资料,存存档备份。    安装在设备中的每一个apk文件,Android给每个APK进程分配一个单独的用户空间,其manifest中的userid就是对应一个Linux用户都会被分配到一个属于自己的统一的linux用户ID,并且为它创建一个沙箱,以防止影响其他应用程序(或者其他应用程序影响它)。用户ID 在应用程序安装

2017-09-01 15:19:38 443

翻译 完美的sharedPreference工具类

github上大神们开源的各种Android工具类https://github.com/android-quick-dev/NonViewUtils这篇记录下SPUtil工具类。首先构建一个内部类,该类的作用是优先使用SharedPreferences的apply方法,如果找不到则使用commit方法。这两个方法的区别在于:apply没有返回值而commit返回boolean表

2017-08-24 10:24:06 426

翻译 Design库-TabLayout属性详解

序上图是简书Android端的主页Tab,在其他的App中Tab也是很常见的,它的实现方式也有很多:TabHost,自定义控件(第三方库),RadioGroup等等。这里主要介绍Android Design库中的TabLayout的使用。1.什么是TabLayout在源码中给出了TabLayout的定义:TabLayout provides a horizontal

2017-08-22 18:25:07 256

原创 Android注解--@hide

@hide当对包,类,方法和域使用时,@hide从文档中删除相关节点和所有子节点。Android有两种不能通过SDK访问的API。第一种是在com.android.internal包中的类。 第二种API类型是标记有@hide javadoc属性的类和方法的集合。隐藏方法仍可以通过反射访问。@hide属性只是javadoc的一部分(droiddoc也是),所以@hide只是简单

2017-08-11 11:23:08 1409

转载 Android应用Preference相关及源码浅析(Preference组件家族篇)

1 前言前一篇(点我阅读前一篇《Android应用Preference相关及源码浅析(SharePreferences篇)》)我们讨论分析使用了Android的SharePreferences,相信看过的朋友都有了自己的感悟与理解,这一篇我们继续乘热打铁来说说SharePreferences的衍生品—-Preference组件。其实Preference组件大家一定不陌生,因为android

2017-08-04 11:30:13 676

原创 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 491

原创 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 370

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除