![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android基础
文章平均质量分 63
Bing_Hui
Android开发
展开
-
android widget 小demo练习(包含Android8.0及以上 app widget无法收到广播的解决方法)
加上这一行代码,一定要在penddingInteng.getBroadcast之前加,不然无效。加上这一行代码就可以解决app widget Android8.0以上无法收到广播的问题原创 2020-09-17 14:58:03 · 435 阅读 · 1 评论 -
Android主题切换(Theme)实现日夜间功能
转载自码农小阿飞 原文地址:http://www.jianshu.com/p/0cd03c878def~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~前言随着一款APP应用功能的不断完善,用户群体的不断增多,APP的更新也就不仅仅局限于功能需求,如何做好良好的用户体验,让用户传播良好的体验口碑,显得尤为重要,而用户体验一块日夜间模式俨然成为了标配。转载 2017-09-23 09:59:20 · 577 阅读 · 0 评论 -
Android彻底组件化方案实践
原文转载:格竹子 原文地址:http://www.jianshu.com/p/1b1d77f58e84~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~一、模块化、组件化与插件化项目发展到一定程度,随着人员的增多,代码越来越臃肿,这时候就必须进行模块化的拆分。在我看来,模块化是一种指导理念,其核心思想就是分而治之、降低耦合。而在Android工程中如何实施,目转载 2017-09-23 18:16:56 · 238 阅读 · 0 评论 -
Android 两种 防止控件重复点击 多次提交
第一种 累计时间 比如十秒内不能重复点击,点击后会累积时间,十秒后才可以再次点击生效public class CommonUtils { // 两次点击按钮之间的点击间隔不能少于10000毫秒 private static final int MIN_CLICK_DELAY_TIME = 11000; public static bool原创 2017-09-16 10:35:10 · 1288 阅读 · 2 评论 -
Android Studio每日小技巧
转载自:青蛙要fly 原文地址:http://www.jianshu.com/p/a40fc225c3371.tools:attribute如果你需要查看写的TextView在有文字时候的预览情况。那么这个就是为你准备的。使用'tools:something="value"'这个值会显示在预览时候,但是在软件真正运行的时候不会出现这个内容。,(tools:text = "转载 2017-09-25 10:01:36 · 173 阅读 · 0 评论 -
Android事件分发机制——从基础深入源码解析
转载自:小筐子 原文链接地址:http://www.jianshu.com/p/e6ceb7f767d8~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~前言前段时间找工作,看了好多关于事件分发机制的书,各路大牛从不同的角度进行了分析。本人受益匪浅,于是有了这篇吸取天地之精转载 2017-09-25 21:32:48 · 341 阅读 · 0 评论 -
JNI高阶知识总结
JNI高阶知识总结JNI与NDK的关系NDK可以为我们生成了C/C++的动态链接库,JNI是java和C/C++沟通的接口,两者与android没有半毛钱关系,只因为安卓是java程序语言开发,然后通过JNI又能与C/C++沟通,所以我们可以使用NDK+JNI来实现“Java+C”的开发方式。JNIEnv与JavaVMJNIEnv 概念 : 是一个线转载 2017-09-27 11:51:37 · 438 阅读 · 0 评论 -
一篇文章,教你学会Git
一、Git工作流程以上包括一些简单而常用的命令,但是先不关心这些,先来了解下面这4个专有名词。Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库工作区程序员进行开发改动的地方,是你当前看到的,也是最新的。平常我们开发就是拷贝远程仓库中的一个分支,基于该分支进行开发。在开发过程中就是对工作区转载 2017-09-28 15:15:23 · 241 阅读 · 0 评论 -
Android 项目混淆
一、理论知识ProGuard 是一款免费的Java类文件压缩器、优化器和混淆器。它能发现并删除无用类、字段(field)、方法和属性值(attribute)。它也能优化字节码 并删除无用的指令。最后,它使用简单无意义的名字来重命名你的类名、字段名和方法名。经过以上操作的jar文件会变得更小,并很难进行逆向工程。二、基本使用ProGuard来进行混洗打包,大大的优化Apk包的大小。但原创 2017-09-20 17:49:38 · 332 阅读 · 0 评论 -
让人惊喜的Kotlin特性!!
本文并不准备去详细说明Kotlin的AS配置以及基本的语法,而是介绍一下在使用过程中让我惊喜的Kotlin特性,希望让更多的人喜欢上这个语言。和findViewById说再见第一个要说的应该是很多已经使用了kotlin的同学都体会到的特性。假设当前Activity对于的布局为如下所示:12345678910111213LinearLayout原创 2017-09-29 10:45:14 · 1140 阅读 · 0 评论 -
用ViewPage实现不同的滑动效果
给ViewPager滑动加一个动画.在我之前的博客模仿知乎安卓客户端的banner广告条以及一些思考中有写到利用viewPager的PageTransformer来实现各种不同的viewPager的滑动效果,这次我就写了9种不同的效果来练习一下.代码在我的 github这里面用的知识点也不是很多,主要是和view变换有关的0.View.setAlpha()设置透明度1. V原创 2017-09-29 15:42:40 · 532 阅读 · 0 评论 -
高级Android到底有什么要求!!!
金三银四已经过去了,移动端的冬天就要来了吗?未必!拿到满意的offer相信才是每个人最想得到的,只有有了机会和平台,才能施展自己的才华和能力,那么到底如何能“快速”成为高级工程师呢?接下来就进入正题:两个部分非技术要求/技术要求高级工程师所要达到的非技术要求:1.沟通:为什么把沟通放在第一位?因为在平日开发过程中几乎一大半的时间实在和各部门沟通,更换一个icon会和UI争得你死我活,会转载 2017-10-08 15:45:15 · 1379 阅读 · 0 评论 -
Android App的设计架构:MVC,MVP,MVVM与架构经验谈
转载自:NIFENGFEIXIANGS 原文链接:http://lib.csdn.net/article/android/64663---------------------------------------------------------------------------------------------------------------------------------转载 2017-09-21 20:19:44 · 179 阅读 · 0 评论 -
简单工厂模式
简单工厂模式(Simple Factory Pattern)前言学习难度:★★☆☆☆使用频率:★★★☆☆学会它。开始吧模式名称中文:简单工厂模式English: Simple Factory Pattern含义:简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态(s转载 2017-09-30 10:14:09 · 348 阅读 · 0 评论 -
Android如何实现开机自动启动Service
今天我们主要来探讨android怎么让一个service开机自动启动功能的实现。Android手机在启动的过程中会触发一个Standard Broadcast Action,名字叫android.intent.action.BOOT_COMPLETED(记得只会触发一次呀),在这里我们可以通过构建一个广播接收者来接收这个这个action.下面我就来简单写以下实现的步骤: 第一步:首先原创 2017-09-30 10:49:19 · 1091 阅读 · 0 评论 -
如何理解Android里的同步和异步的区别
答案一:1、同步执行的话,就是程序会呆板地从头执行到尾,耗时间的东西不执行完,程序不会继续往下走,等待时间长的话,有时候就会造成失去响应了。2、异步的好处,就是把一些东西,特别是耗时间的东西扔到后台去运行了(doInBackground),程序可以继续做自己的事情,防止程序卡在那里失去响应。答案二:1、同步是指两个线程的运行是相关的,其中一个线程要阻塞等待另外一个线程的原创 2017-10-09 10:48:23 · 758 阅读 · 0 评论 -
深入理解Android之View的绘制流程
概述本篇文章会从源码(基于Android 6.0)角度分析Android中View的绘制流程,侧重于对整体流程的分析,对一些难以理解的点加以重点阐述,目的是把View绘制的整个流程把握好,而对于特定实现细节则可以日后再对相应源码进行研读。在进行实际的分析之前,我们先来看下面这张图:我们来对上图做出简单解释:DecorView是一个应用窗口的根容器,它本质上是一个Fr转载 2017-09-30 16:29:14 · 222 阅读 · 0 评论 -
Rxjava2源码解析超详细~~~
转载:Est 的小窝 原文地址:https://blog.codeest.moe/2017/03/25/android-rxjava2/?utm_medium=email&utm_source=gank.io前言和之前的 Glide 篇一样,这篇 RxJava2 源码分析也会先列出一些要点,然后按这些点一步一步分析注意,文章中的 RxJava 均是指RxJava2R转载 2017-09-22 11:02:04 · 1424 阅读 · 0 评论 -
Java之选择排序
#选择排序:背景介绍: 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 ----- 来自 wikipedia算法规则: 将待排序集合(0...n)看成两部分,在起始状态原创 2017-10-18 14:30:57 · 130 阅读 · 0 评论 -
Java之快速排序
#快速排序:背景介绍: 又称划分交换排序(partition-exchange sort),一种排序算法,最早由东尼·霍尔提出。在平均状况下,排序n个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n)算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来 ---原创 2017-10-18 14:33:03 · 185 阅读 · 0 评论 -
Java之冒泡排序
#冒泡排序:背景介绍: 是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。----- 来自 wikipedia算法规则: 由于算法每次都将一个最大的元素往上冒,我们可以将待排序集合(0原创 2017-10-18 14:32:21 · 145 阅读 · 0 评论 -
Java之归并排序
归并排序:背景介绍: 是创建在归并操作上的一种有效的排序算法,效率为O(n log n)。1945年由约翰·冯·诺伊曼首次提出。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用,且各层分治递归可以同时进行。 ----- 来自 wikipedia算法规则: 像快速排序一样,由于归并排序也是分治算法,因此可使用分治思想:1.申请空间,使其大小为两个原创 2017-10-18 14:34:10 · 143 阅读 · 0 评论 -
Android之进程、线程、进程间通信的相关概念理解
当某个应用组件启动且该应用没有运行其他任何组件时,Android 系统会使用单个执行线程为应用启动新的 Linux 进程。默认情况下,同一应用的所有组件在相同的进程和线程(称为“主”线程)中运行。 如果某个应用组件启动且该应用已存在进程(因为存在该应用的其他组件),则该组件会在此进程内启动并使用相同的执行线程。 但是,您可以安排应用中的其他组件在单独的进程中运行,并为任何进程创建额外的线程。原创 2017-10-10 09:55:05 · 220 阅读 · 0 评论 -
android进程间通信学习
由于android系统中应用程序之间不能共享内存。因此,在不同应用程序之间交互数据(跨进程通讯)就稍微麻烦一些。在android SDK中提供了4种用于跨进程通讯的方式。这4种方式正好对应于android系统中4种应用程序组件:Activity、Content Provider、Broadcast和Service。其中Activity可以跨进程调用其他应用程序的Activity;Content转载 2017-10-19 09:49:53 · 211 阅读 · 0 评论 -
最简单的MVP模式,简洁易懂。
#MVP###为什么需要MVP尽量简单 大部分的安卓应用只使用View-Model结构,程序员现在更多的是和复杂的View打交道而不是解决业务逻辑。当你在应用中只使用Model-View时,到最后,你会发现“所有的事物都被连接到一起”。复杂的任务被分成细小的任务,并且很容易解决。越小的东西,bug越少,越容易debug,更好测试。在MVP模式下的View层将会变得简单,所以即便是他原创 2017-10-27 09:52:59 · 448 阅读 · 0 评论 -
android中textview单行显示,多余的省略
有时候在ListView中显示Textview时由于长度过长而导致text会隔行显示,UI上看起来就比较的不友好。 官方提供了相关的实现单行显示的方法。 中间的singleline设置为true,就可以实现单行,且省略号在最后,而ellipsize则是控制省略号的位置,分别有start(开始),middle(中间),end(最后),marquee(跑马灯)。原创 2017-10-10 17:47:44 · 435 阅读 · 0 评论 -
解决 app:transformClassesWithDexForDebug 错误
今天在引用oss阿里云的jar包的时候出现了如下这个错误:错误信息:Error:Execution failed for task ':app:transformClassesWithDexForDebug'.> com.android.build.api.transform.TransformException: java.lang.RuntimeException: com.a原创 2017-10-10 17:50:29 · 464 阅读 · 0 评论 -
怎么解决java.lang.NoClassDefFoundError错误
前言在日常Java开发中,我们经常碰到java.lang.NoClassDefFoundError这样的错误,需要花费很多时间去找错误的原因,具体是哪个类不见了?类明明还在,为什么找不到?而且我们很容易把java.lang.NoClassDefFoundError和java.lang.ClassNotfoundException这两个错误搞混,事实上这两个错误是完全不同的。我们往往花费时间转载 2017-10-10 17:54:53 · 1525 阅读 · 0 评论 -
Android图片中的三级缓存
##为什么要使用三级缓存如今的 Android App 经常会需要网络交互,通过网络获取图片是再正常不过的事了假如每次启动的时候都从网络拉取图片的话,势必会消耗很多流量。在当前的状况下,对于非wifi用户来说,流量还是很贵的,一个很耗流量的应用,其用户数量级肯定要受到影响特别是,当我们想要重复浏览一些图片时,如果每一次浏览都需要通过网络获取,流量的浪费可想而知所以提出三级缓存策略,通过网络原创 2017-10-20 12:21:24 · 436 阅读 · 0 评论 -
给初学编程的人的忠告
一、这多东西啥时候能学完?现在IT新技术日新月异。就常用编程语言而言,有c/c++、汇编、java,c#、Python等;操作系统平台有unix /linux,windows系列;开发工具有VC、VisualStudio2008、Eclipse、NetBeans等;每个大平台下,还有很多的 的方向:如网络、数据库、脚本、HTML、动态网站、游戏开发等;有人还在学Dreamweaver做原创 2017-10-11 15:10:01 · 9087 阅读 · 3 评论 -
高级程序猿的修炼之路
之前做了一次线上分享,对我来说一次自我梳理的机会,我把分享的内容整理成这篇文章,时刻激励自己,也希望能给那些和我一样在努力挣扎着的技术同胞们一点参考。我们先来看看作为一枚程序员,这个行业对我们的要求是怎样的。这是一份工程师的职级表(点进去看),大约是参考腾讯系的技术族职称。我相信看完之后都会有种“路漫漫其修远兮”的感觉,就像游戏中升级打怪一样,开始升级比较快,越往后面越难。这是一场持久转载 2017-10-11 16:17:33 · 716 阅读 · 0 评论 -
EventBus用法详解
#EventBus###概述EventBus是一款针对Android优化的发布/订阅(publish/subscribe)事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息。简化了应用程序内各组件间、组件与后台线程间的通信。优点是开销小,代码更优雅。以及将发送者和接收者解耦。比如请求网络,等原创 2017-10-28 14:57:45 · 178 阅读 · 0 评论 -
JNI高阶知识总结
JNI与NDK的关系NDK可以为我们生成了C/C++的动态链接库,JNI是java和C/C++沟通的接口,两者与android没有半毛钱关系,只因为安卓是java程序语言开发,然后通过JNI又能与C/C++沟通,所以我们可以使用NDK+JNI来实现“Java+C”的开发方式。JNIEnv与JavaVMJNIEnv 概念 : 是一个线程相关的结构体, 该结构体代表了 Java原创 2017-10-12 11:12:10 · 185 阅读 · 0 评论 -
Android 弹性动画的三种实现方式
前言现在的android开发提出的需求是越来越接近现实真实感,提高用户 体验感。就拿动画效果来说,之前设计给的需求大都比较直接,缩放、 旋转、移动等动画效果都执行完就结束了。现在的话,为了追求现实 生活中的那种真实感,往往都会有一个回弹的效果,称之为弹性动画。非弹性动画体验非弹性动画的效果图: 我们来看一下实现该效果的代码:private vo转载 2017-11-07 11:01:34 · 369 阅读 · 0 评论 -
Android APP内部跳转到微信
最近公司APP需要内部跳转到微信应用,简单写了个demo。测试了下。原创 2017-11-07 11:23:30 · 3440 阅读 · 0 评论 -
自定义控件三步骤
自定义View的步骤:自定义View的属性在View的构造方法中获得我们自定义View的步骤[3.重写onMeasure](不必须)重写onDraw原创 2017-10-30 11:02:25 · 597 阅读 · 0 评论 -
神经网络API、Kotlin支持,那些你必须了解的Android 8.1预览版和Android Studio 3.0新特性
曾仅用 55 秒发布会的 Android 8.0 Oreo 在时隔两个月后,Google 于今天在其官方网站上正式发布了 Android 8.1 首个开发者预览版,此次升级涵盖了针对多个功能的提升优化,其中包含对 Android Go (设备运行内存小于等于 1 GB)和加速设备上对机器学习的全新神经网络 API(Neural Networks API)。也基于 Oreo 用户与开发者的反馈做出了转载 2017-11-07 18:18:48 · 240 阅读 · 0 评论 -
安卓ADB端口被占用/ADB无法使用解决办法
首先在使用ADB前所有手机辅助类软件1、CMD命令窗口输入:adb nodaemon server 。然后就会提示你哪个端口被占用了。2、输入netstat -ano | findstr "5037" 。然后会弹出提示告诉你哪些进程占用了该端口,记住非0地址的后面的数字3、打开任务管理器,点击“进程“,“查看”-“选择列”,勾选PID4、查找第2步中看到的数字PID原创 2017-10-13 09:58:33 · 364 阅读 · 0 评论 -
面试之ANR,一网打尽
#面试之ANR,一网打尽1、ANR排错一般有三种类型KeyDispatchTimeout(5 seconds) --主要是类型按键或触摸事件在特定时间内无响应BroadcastTimeout(10 seconds) --BroadcastReceiver在特定时间内无法处理完成ServiceTimeout(20 secends) --小概率事件 Service在特定的时间内无法处理原创 2017-10-30 17:42:48 · 357 阅读 · 0 评论 -
详解JAVA垃圾回收机制
在java中垃圾回收是系统自动完成的,了解它对优化应用程序有很大的帮助。那么我们就从下面几个方面来了解垃圾回收机制:哪些对象需要回收?什么时候回收?怎么去回收?判断对象可以回收的方法:引用计数算法给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不转载 2017-11-08 10:57:28 · 163 阅读 · 0 评论