Android
文章平均质量分 64
林一末
余生多多指教
展开
-
Handler 详讲
前置知识:ThreadLocal 不懂请进入 一> ThreadLocal 强、虚、软,弱 一> 传送门 执行流程 handler、looper、queue 的 联系 先看图片 主线程(即UI线程)自身就有message loop,不需要创建,ActivityThread 作为 Android的程序启动入...原创 2018-10-21 16:08:53 · 576 阅读 · 0 评论 -
Android 之 ContentProvider 内容提供器的介绍
简介用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序的数据,同时保证被访数据的安全性,使用ContentProvider是Android实现跨程序共享数据的标准方式。不同于文件存储和SharedPreferences,ContentProvider可以选择只对哪一部分数据进行共享。 为什么需要ContentProvider?这一点是我...原创 2018-10-05 11:58:21 · 444 阅读 · 0 评论 -
Android跨进程通信:binder机制原理
个人阅读收获通过binder驱动我们可以减少一次io操作,从而减少了我们进程通信的花费的资源,加快了进程间通信的速度。我们使用到了Linux的mmap()操作,从而实现了进程间的接收缓存区与进程的空间区的映射,从而少了一次io操作。我们的客户端会发送信息通过我们io操作讲文件发送到内核缓存区,因为上述说到 我们在注册服务的时候我们已经将,内核缓存区和用户空间,交换缓存区已经进行了映射操作了。...转载 2018-10-01 14:49:14 · 374 阅读 · 0 评论 -
Android 之 内嵌 Recylerview 的 dialog
前言:好吧,这里我就吐槽一下在制作的过程中最大的迷惑吧,因为 我个人使用的是华为手机作为真机来来调试的,然后等我实现好我的逻辑 一上真机就发现了一个问题,为啥我的dialog样式跟我的设计相差那么大的变化,这这这太奇怪了吧,然后开始找错误了,到最后才发现,原来我继承的 AlertDialog 在 华为 和 小米手机上样式已经遭到了更改。一把父类更改为 Dialog 就恢复会正常的状态。 ...原创 2018-09-11 10:18:47 · 4960 阅读 · 0 评论 -
Scheme小测
App之间的跳转清单文件声明 <intent-filter> <data android:host="myhost" android:scheme="myscheme" /> <action andro...转载 2018-09-07 16:20:32 · 299 阅读 · 0 评论 -
Android 之 activity
打开标准活动,比如打开拨号界面Intent i = new Intent(Intent.ACTION_DIAL);startActivity(i);常见的其他标准活动如下,在执行相应的操作时,记得要添加权限ACTION_MAIN APP的入口 ACTION_VIEW 用于显示用户的数据。比较通用,会根据用户的数据类型打开相应的Activity。比如`Inten...原创 2018-09-06 17:23:11 · 124 阅读 · 0 评论 -
Android 之 解决 Android studio加载时间久的办法
摘要:在你的C盘目录下找到你的gradle文件在哪一般是C:/Users/你的账号名字(username)/.gradle在这个目录下添加一个文件然后去你的studio里面设置一下选择菜单项File-》Settings这就可以重启你的studio 然后再去加载gradle的时候就非常快乐 在你的C盘目录下找到你的gradle文件在哪 一般是C:/Users/你的账号名字(username...原创 2018-09-09 19:43:24 · 2823 阅读 · 0 评论 -
Android 之 超详细 Broadcast
前言:现存在的 大喇叭 ,还有我们的网络通信中使用的 IP 都无一的利用了类似广播这一原理来进行对信息来进行传递,为了便于进行系统级别的消息通知,Android引入了一套类似的广播消息机制。相比于我前面举出的两个例子,Android中的广播机制会显得更加的灵活,本文就对这一机制的方方面进行详细的讲解。 通过本文你将会学到以下几个方面(注意以下代码例子均为个人案例)广播是什么 ...原创 2018-09-06 08:51:58 · 12850 阅读 · 3 评论 -
一个很有意思的并查集详解
并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了。以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定。不分享出来真是对不起party了。(party:我靠,关我嘛事啊?我跟你很熟么?)来看一个实例,杭电1232畅通工程首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点,让你判断它...转载 2018-09-11 12:00:00 · 139 阅读 · 0 评论 -
简简单单的爱过,Android 插件 ButterKnife Zelezny 与 butterknife 的超强配合使用
好啦,这里好像也没有需要我来唠叨说什么的了,就直接进入主题吧 为什么要使用这两个因为我相信,我们都是从事Android的开发者,然后我们都是从小白阶段过来了,肯定经历过大量恶心的findviewbyid();今天我们学习完这个插件,我们就可以从此脱离苦海,普度众生了。 前期准备先在你的idle中添加 ButterKnife Zelezny 这个插件在你的...原创 2018-10-05 13:27:20 · 417 阅读 · 0 评论 -
webview常规问题
一、简介这部分主要介绍下 WebView,WebView 是一个用来显示 Web 网页的控件,继承自 AbsoluteLayout,和使用系统其他控件没什么区别,只是 WeView 控件方法比较多比较丰富。因为它就是一个微型浏览器,包含一个浏览器该有的基本功能,例如:滚动、缩放、前进、后退下一页、搜索、执行 Js等功能。 二、开始最简单的使用2.1 加载一个最简单的页面...原创 2018-10-12 18:39:45 · 378 阅读 · 1 评论 -
爆炸性的 Fragment 登场
前言:今天要来介绍的是Fragment,这个组件,很是强悍,具有超高的作用。好吧好吧,可能大家看到这些都是不想看的,不就fragment嘛,搞安卓的,这个组件不是天天抬头不见低头见的组件嘛,你还在这跟我瞎吹那么多,好吧好吧,我也知道大家不喜欢看这些净没有质量的文章,但是还是让我满足自己的完美感,让我把文章该有的部分给写上嘛,不然我好难受,下文的内容肯定也有你喜欢的部分,好啦,话不多说,开始我的表演...原创 2018-10-09 16:27:57 · 171 阅读 · 0 评论 -
简单的IntentService
简介IntentService是Service类的子类,用来处理异步请求。客户端可以通过startService(Intent)方法传递请求给IntentService。IntentService在onCreate()函数中通过HandlerThread单独开启一个线程来处理所有Intent请求对象(通过startService的方式发送过来的)所对应的任务,这样以免事务处理阻塞主线程。...原创 2018-10-23 10:34:05 · 182 阅读 · 0 评论 -
强、软、弱、虚引用(案例)
前言:如果只是想避免OutOfMemory异常的发生,则可以使用软引用。如果对于应用的性能更在意,想尽快回收一些占用内存比较大的对象,则可以使用弱引用。 1.强引用(StrongReference) 强引用就是指在程序代码之中普遍存在的,比如下面代码中的objec是强引用:Object object = new Object(); 只要某个对象有强引用与之关联,J...原创 2018-10-17 19:31:49 · 375 阅读 · 0 评论 -
简单的HandlerThread
好吧好吧,可能我看的内容比较少,我感觉这个handlerThread 并没有什么内容可以介绍的,前提是你得真的懂了 Handler如不懂 一> 你不得不知道的handler还是要来介绍一下的 handlerthread 主要是用来开启异步线程进行操作的,但他的更加一个目的呢,是为了帮助我们开发的简便吧,帮我们开启了一个线程,默认封装好我们 handler 在子线程的常规操作。...原创 2018-10-22 13:47:25 · 187 阅读 · 0 评论 -
你真的了解事件分发传递机制原理吗
1、什么是事件传递可以理解为触摸事件在Activity和控件之间,控件和控件之间的传递过程。 2、学习完有什么用处自定义控件处理控件之间的冲突,明白点击事件由哪个对象发出,经过哪些对象,最终达到哪个对象并最终得到处理。 3、学习之前应该了解什么3.1 什么是ViewGroup集成的View,可以充当其他view的容器3.1 什么是View单一控件,例如...原创 2018-10-10 21:26:23 · 453 阅读 · 0 评论 -
listview高度的计算,解决listview只显示一行的问题。
手动设置高度,文章不完整,待补充方法如下: public void setListViewHeightBasedOnChildren(ListView listView) { // 获取ListView对应的Adapter ListAdapter listAdapter = listView.getAdapter(); if (lis...原创 2018-10-10 17:13:30 · 575 阅读 · 0 评论 -
走过路过不要错过AsyncTask详解
概念AsyncTask:异步任务,从字面上来说,就是在我们的UI主线程运行的时候,异步的完成一些操作。AsyncTask允许我们的执行一个异步的任务在后台。我们可以将耗时的操作放在异步任务当中来执行,并随时将任务执行的结果返回给我们的UI线程来更新我们的UI控件。通过AsyncTask我们可以轻松的解决多线程之间的通信问题。怎么来理解AsyncTask呢?通俗一点来说,AsyncTa...原创 2018-10-16 20:22:28 · 2209 阅读 · 1 评论 -
应用横竖屏切换造成、UI改变 、数据丢失的处理 onConfigurationChanged
我们直接进入主题应该如何来解决这个问题呢步骤一 权限声明:<uses-permission android:name="android.permission.CHANGE_CONFIGURATION"></uses-permission>步骤二 添加要防止的事件类型:如下 <activity android:...原创 2018-10-09 11:39:20 · 941 阅读 · 0 评论 -
AS编译可行,但莫名其妙的安装debug_apk闪退
好吧,今天遇到一个问题,纠结了一个小时,真的有点烦,在这里我记录一下我解决这个方法的过程问题:编译可行,但莫名其妙的安装debug_apk闪退。java.lang.RuntimeException:Unabletoinstantiateactivity ComponentInfo{com.example.jie.demo/com.example.jie.demo.MainActivi...原创 2018-10-08 13:56:04 · 1016 阅读 · 0 评论 -
务必知道的Android service的完全详解
前言:service服务,能够使得应用程序即使在关闭的情况下仍然可以在后台继续执行。后台功能属于四大组件之一,其重要程度不言而喻,那让我们接下来来来好好学习一下。 通过本文你可以学到以下内容service是什么 service的两种状态 Service在清单文件中的声明 Service启动服务实现方式及其详解 Service绑定服务的三种实现方式 关于启动服务与绑定服务间...原创 2018-09-28 21:53:09 · 41589 阅读 · 8 评论 -
Android 之 Greendao 简易快速上手
GreenDao 简介greenDAO是一个开源的Android ORM,使SQLite数据库的开发再次变得有趣。 它减轻了开发人员处理底层的数据库需求,同时节省开发时间。 SQLite是一个很不错的关系型数据库。 尽管如此,编写SQL和解析查询结果仍然是相当乏味和耗时的任务。 greenDAO通过将Java对象映射到数据库表(称为ORM,“对象/关系映射”)来解决这些问题。 这样,您...原创 2018-08-21 17:43:57 · 1803 阅读 · 0 评论 -
Android 之 史上最细 Material Design
Material DesignMaterial Design是谷歌新的设计语言,谷歌希望寄由此来统一各种平台上的用户体验,Material Design的特点是干净的排版和简单的布局,以此来突出内容。今天试了几个比较Support包中比较典型的Material Design控件,后期会在学习下Material Design的设计思想和理念。 Android Design Support...原创 2018-08-28 18:16:17 · 555 阅读 · 0 评论 -
Android 之 RecyclerView
笔记酒吧: 简单列表步骤:完成 bean 对象 完成 item 获得数据 引入库 可能出现问题 实现控件 XML 实现 Adapter 使用 bean对象根据后端给我的json格式我们解析成我们想要的bean对象,使用插件Gson,快速简便package com.LY.project.Module;import com.google.gson.G...原创 2018-08-18 14:14:36 · 204 阅读 · 0 评论 -
Android之获取apk版本号与版本名
笔记酒吧 //获取apk的版本号 currentVersionCodeprivate void getAPPLocalVersion(Context ctx) { PackageManager manager = ctx.getPackageManager(); try { PackageInfo info = manager.getPackageInfo...原创 2018-08-15 16:06:11 · 2553 阅读 · 1 评论 -
Android之WiFi连接检测
笔记酒吧 /** * 检测wifi是否连接 */public static boolean isWifiConnected(Context context) { ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); if...原创 2018-08-15 15:21:05 · 1171 阅读 · 0 评论 -
Android之Dialog
笔记酒吧普通的dialog弹框 AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()).create(); builder.setTitle("主题") .setMessage("内容") .setPositive...原创 2018-08-15 15:15:03 · 127 阅读 · 0 评论 -
Android之渐变动画
笔记酒吧 /** * 渐变动画 */private void crossfade() { open_lock.setAlpha(0f); open_lock.setVisibility(View.VISIBLE); open_lock.animate() .alpha(1f) .setDuration(1000...原创 2018-08-15 11:36:02 · 605 阅读 · 0 评论 -
Android之activity 四种加载方式
这里我们废话不多说,直接进入主题 开始对我们activity四种加载方式进行介绍。 standard 这种模式呢是属于默认模式,在这个模式下每当我们跳转页面,都会默认创建一个新的实例。因此在这种模式下,允许有多个实例,每创建一个实例就会放入栈内,置于栈顶之上。每次按键放回就会一直出栈,处于栈顶的实例就是我们用户所看到的应用界面。 singleTop在这一个模式中呢 我...原创 2018-08-06 13:36:50 · 1397 阅读 · 0 评论 -
Android之调取本地通讯录、发送短信、邮箱、微信发送
前言:在我们开发中会遇到一些信息发送开发需求,我们那时就会用到我们要选择我们要发送的客户对象、选择发送的方式如短信、邮箱、微信等等方式来进行信息的发送。 如下str为要发送的内容,account 为我们要发送的用户。调用本地的通讯录:调用 ://读取通讯录 startActivityForResult(new Intent( ...原创 2018-08-05 22:17:25 · 2001 阅读 · 0 评论 -
Android之权限处理
自从从Android6.0以后,个人安全隐私越来越重视,用户对客户端的授权必须收到用户授权。这个Android6.0以后保留一些之前的一些权限方法,保留一些清单文件的权限。唯独更改的是那些及其重要的用户权限。如下为例子:不是及其重要的权限:只需在AndroidManifest清单文件静态权限:<uses-permission android:name="android.pe...原创 2018-08-05 17:21:14 · 1147 阅读 · 0 评论 -
Android引入module模块
引入的流程线上一大把资源,然后我就写上可能出现的bug吧错误原因: 由于引入多个module出现程序无法识别哪一个module作为主要的主模块解决方法: android { sourceSets.main.jniLibs.srcDirs = ['src/main/libs'] }...原创 2018-08-05 16:48:00 · 929 阅读 · 0 评论 -
Android 之 XRecyclerview的使用
前言:我们在上一篇文章中学到了Recyclerview但是在现实中往往需求不是那么的简单,可能需要多种需求合并起来,例如常见的上下拉刷新,删除 item 还有多种item,有着头部和尾部等等之类的。这次我们久来学习一个RecyclerView的库,XRecyclerView的他集合了众多的功能,下面就让我来讲解一下如何使用。 步骤:引用 库 创建 控件 下拉刷新...原创 2018-08-19 16:04:59 · 12495 阅读 · 2 评论 -
Android之界面处理
笔记酒吧1、去除上边框 ,设置主题如下 <application android:allowBackup="true" android:icon="@mipmap/icon" android:label="@string/app_name" android:roundIcon="@mipmap/icon" ...原创 2018-08-16 16:31:59 · 162 阅读 · 0 评论 -
android之postDelayed是否运行在主线程中解答
知识点1、postDelayde是否运行在主线程中?答案是肯定的。代码如下在绝对的UI线程中打印线程ID: System.out.println("-=-=-=>>xianchengid00000 = " + Thread.currentThread().getId());下面在posdelayed中打印运行线程的ID: new Handle...转载 2018-08-19 12:16:02 · 2259 阅读 · 0 评论 -
Android 之 Activity生命周期
1.启动Activity:系统会先调用onCreate方法,这是生命周期第一个方法,然后调用onStart方法,最后调用onResume,Activity进入 运行状态。onCreate方法:一般做一些初始化工作,比如setContentView去加载布局资源,初始化Activity所需的数据。onStart方法:表示Activity正在启动,已经可见,但是无法和用户交互。on...转载 2018-08-23 20:01:25 · 248 阅读 · 0 评论 -
Android 之 PopupWindow
笔记酒吧基础控件 Popupwindow (demo:https://github.com/ljtlcj/PopupWindow)简单明了,直接上效果图 上实现代码:继承implements View.OnClickListener, PopupWindow.OnDismissListener view_popupwindow1.xml效果<...原创 2018-08-23 13:32:39 · 131 阅读 · 0 评论 -
Android 之 Error:Failed to resolve: com.android.support:recyclerview-v7:26.1.0
自己项目需要引入第三方SDK,导入项目中,代码铺好,迫不及待看看效果,run,问题来了Error:Failed to resolve: com.android.support:recyclerview-v7:26.1.0 立马查看下build.gradle,没有看到有依赖recyclerview-v7:26.1.0,左右排查一遍,没有发现任何关于26版本问题,立马猜测石油第三方仓库...转载 2018-08-17 18:07:16 · 3439 阅读 · 0 评论 -
Android 之 版本错误
你在使用android studio时是否也出现过上图的报错,你还在为它的出现烦恼?没问题,看了本文章,我确保你会顺利解决掉它并会很骄傲的认为这只是一个小case级别的报错。我们进入正题吧,先来说下什么时候会出现这种错误:1.当你在用别的电脑上的android studio编写一个项目时,然后copy下来,又在自己电脑上的android studio 上导入该项目时会报错...转载 2018-08-17 18:03:59 · 240 阅读 · 0 评论 -
Android 之 二维码扫描 以及 二维码生成
前言:现在大部分人开发二维码扫描都是使用Zxing来集成开发,但是总是感觉有点小麻烦,刚刚好最近在开发一个类似的功能,也找到一个比较方便的库,只需直接添加依赖就可以。 源码:github链接 https://github.com/yuzhiqiang1993/zxingdemo链接 https://github.com/ljtlcj/Zxing 效果图:这...转载 2018-08-27 10:48:37 · 484 阅读 · 0 评论