
Android基础
华-山
这个作者很懒,什么都没留下…
展开
-
Android布局优化/学习笔记
先推荐两篇大佬的文章:郭霖的Android布局优化,比较浅显易懂,我也是根据这个写的笔记这篇文章内容较多较深,可以慢慢看然后写写我的总结(1)可用include实现布局嵌套方法就是在主页面里面加个include标签:<include android:layout_width="368dp" android:layout_height="wrap_content...原创 2018-06-03 16:05:25 · 247 阅读 · 2 评论 -
Android根据图片path转成Uri,分享图片
先给出代码:通过uri.fromfile()方法将图片path,转化为uri,然后送给EXTRA_STREAM,实现分享//分享 Uri pa=Uri.fromFile(new File(filePath));//根据路径转化为uri Intent imageIntent = new Intent(Intent.ACTION...原创 2018-07-26 17:50:19 · 3264 阅读 · 0 评论 -
Android为什么在非UI线程中进行UI操作而不报错
一般而言,android中相关的view和控件不是线程安全的,Android会禁止在非UI线程更新UI,对于显式的非法操作,比如说直接在Activity里创建子线程,然后直接在子线程中操作UI等,Android会直接异常退出,并提示should run on UIThread之类的错误日志信息。而对于隐式的非法操作,App不会直接简单粗暴地异常退出,只是出现奇怪的结果,Only the origi...原创 2018-07-30 17:36:05 · 2722 阅读 · 0 评论 -
Android中Handler的post(Runnable)用法和handleMesaage用法
在Android中,Handler被用来提供用于线程间通信,以确保线程通信安全(比如UI线程的安全)。包含四个组成部分:Message,Looper,MessageQueue,Handler,这四个组成部分构成了多线程中经典的“生产者————消费者模型”1、成员介绍 Message:主要功能是进行消息的封装,同时可以指定消息的操作形式; Looper:消息循环泵,用来为一个线程跑一个消息循...原创 2018-07-30 21:41:31 · 20833 阅读 · 2 评论 -
Invalidate、postInvalidate、requestLayout应用场景与区别
1、Invalidate和postInvalidate的区别Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用。 鉴于此,如果要使用invalidate的刷新,那我们就得配合handler的使用,使异步非ui线程转到ui线程中调用,如果要在...转载 2018-07-30 22:08:32 · 1728 阅读 · 0 评论 -
Android SharedPreferences用法及原理
Android提供用来存储一些简单的配置信息的一种机制,例如,一些默认欢迎语、登录的用户名和密码等。其以键值对的方式存储,使得我们可以很方便的读取和存入.当Activity暂停时,将此activity的状态保存到SharedPereferences中;当Activity重载,系统回调方法onSaveInstanceState时,再从SharedPreferences中将值取出。 Shared...原创 2018-08-05 15:06:16 · 620 阅读 · 0 评论 -
Android四大组件之Service
本文转自郭霖大佬的:Android Service完全解析,关于服务你所需知道的一切(上) Android Service完全解析,关于服务你所需知道的一切(下) 前言:大神之所以称为大神,除了自己具备理解、掌握知识的能力之外,更还是具备将知识分享、传播的能力。这篇文章很长,但是我一路看下来思路很清晰,不得不佩服郭霖...转载 2018-08-01 09:19:52 · 324 阅读 · 0 评论 -
Android四大组件之Content Provider
1. Android应用程序组件Content Provider的应用实例。 2. Android应用程序组件Content Provider的启动过程源代码分析。 3. Android应用程序组件Content Provider在不同应用程序之间共享数据的原理分析。 4. Android应用程序组件Content Provid...转载 2018-08-01 17:04:25 · 220 阅读 · 0 评论 -
Android四大组件之Broadcast
0.Android系统中的广播(Broadcast)机制简要介绍和学习计划 1. Android应用程序注册广播接收器(registerReceiver)的过程分析; 2. Android应用程序发送广播(sendBroadcast)的过程分析。知识的搬运工。...转载 2018-08-01 17:07:23 · 167 阅读 · 0 评论 -
Android四大组件之Activity
Android应用程序的Activity启动过程简要介绍和学习计划Android应用程序启动过程的源代码分析;Android应用程序内部启动Activity过程(startActivity)的源代码分析。知识的搬运工。。 ...转载 2018-08-01 17:50:51 · 156 阅读 · 0 评论 -
ListView的相关优化
由于ListView的优化是面试中的常考点,现整理一下,主要有以下的优化方法:1、复用convertView,对convetView进行判空,当convertView不为空时重复使用,为空则初始化,从而减少了很多不必要的View的创建、减少findViewById的次数,2、避免在getView方法中做耗时操作3、采用ViewHolder模式缓存item条目的引用4、给listView设...原创 2018-09-17 21:02:28 · 264 阅读 · 0 评论 -
为什么说android UI操作不是线程安全的
可能在非UI线程中刷新界面的时候,UI线程(或者其他非UI线程)也在刷新界面,这样就导致多个界面刷新的操作不能同步,导致线程不安全。1、为什么说invalidate()不能直接在线程中调用?2、它是怎么违背单线程的?3、android ui为什么说不是线程安全的?4、android ui操作为什么一定要在UI线程中执行? 1、为什么说invalidate()不能直接在线程中调用?...转载 2018-07-30 00:05:35 · 1084 阅读 · 1 评论 -
RecyclerView详细用法
本文转自https://blog.youkuaiyun.com/tuike/article/details/79064750#comments,用作参考学习RecyclerView是support:recyclerview-v7中提供的控件,最低兼容到android 3.0版本。官方介绍RecyclerView为在有限的窗口展现大量数据的控件。拥有类似功能的控件有ListView、GridView以及...转载 2018-07-29 10:32:23 · 2267 阅读 · 0 评论 -
relativelayout和LinearLayout在实现效果同等情况下选择使用哪个?为什么?(学习笔记)
首先介绍:LinearLayout是线性布局控件,它包含的子控件将以横向或竖向的方式排列,按照相对位置来排列所有的widgets或者其他的containers,超过边界时,某些控件将缺失或消失。因此一个垂直列表的每一行只会有一个widget或者是container,而不管他们有多宽,而一个水平列表将会只有一个行高(高度为最高子控件的高度加上边框高度)。LinearLayout保持其所包含的widg...原创 2018-06-03 16:51:29 · 3237 阅读 · 0 评论 -
Android中sqlite的基本增删查改用法
sqlite是Android中内置的轻型数据库,可以使用sql命令,是一种完善的,轻型的数据库。在Android中,每个应用程序都可以有自己的数据库实例,默认情况下是只能被自己访问的。数据库存放在Android设备的/data/data/<package_name>/databases文件夹下。可以使用内容提供器在应用程序间共享数据库信息。使用sqlite数据库可分为以下步骤:...原创 2018-06-05 01:58:39 · 3756 阅读 · 0 评论 -
Android接入WebView(一)——基本用法
Android接入WebView(一)——基本用法Android接入WebView(二)——与JavaScript交互Android接入WebView(三)——浏览器书签与历史记录与二维码分享Android接入WebView(四)——浏览器书签与历史记录详细处理Android接入WebView(五)——浏览器制作总结及源码分享最近写了一个基于webview和zxing,sqli...原创 2018-06-05 19:02:34 · 4678 阅读 · 0 评论 -
Android接入WebView(二)——与JavaScript交互
Android接入WebView(一)——基本用法Android接入WebView(二)——与JavaScript交互Android接入WebView(三)——浏览器书签与历史记录与二维码分享Android接入WebView(四)——浏览器书签与历史记录详细处理Android接入WebView(五)——浏览器制作总结及源码分享最近写了一个基于webview和zxing,sqli...原创 2018-06-07 00:42:28 · 1632 阅读 · 0 评论 -
Android studio移动项目到另外一个文件夹,结果不能安装的解决方法
如图:(1)切换到project:(2)删除.gradle , .idea , build 三个文件夹。问题解决!原创 2018-06-22 23:07:47 · 3691 阅读 · 1 评论 -
安卓Android学习之handler的基础用法
总得来说Handler的主要用途有两个:(1)、在将来的某个时刻执行消息或一个runnable;(2)把消息发送到消息队列。先看效果一:延迟一秒改变文字:点击按钮一秒后改变文字再看效果二:进度条3秒后消失:点击按钮后出现进度条,3秒后消失。talk is cheap,show me the code:package mountain_hua.learn1;import android.app....原创 2018-06-02 16:13:16 · 503 阅读 · 0 评论 -
Android四大组件六大布局五大存储学习笔记
本文转载自https://blog.youkuaiyun.com/weixin_39399984/article/details/79249079,仅作为学习笔记,侵删!Android四大组件分别为activity、service、contentprovider、broadcast receiver。一、android四大组件详解1、activity(1)一个Activity通常就是一个单独的屏幕(窗口)。(...转载 2018-06-16 22:14:27 · 341 阅读 · 0 评论 -
理解ConstraintLayout性能上的好处(转载,仅供学习)
本文转载自:https://www.jianshu.com/p/fae1d533597b,仅供学习(译)理解ConstraintLayout性能上的好处本文介绍了ConstraintLayout对于性能方面的好处并和传统布局做了比较。《钱塘湖春行》孤山寺北贾亭西, 水面初平云脚低。几处早莺争暖树, 谁家新燕啄春泥。乱花渐欲迷人眼, 浅草才能没马蹄。最爱湖东行不足, 绿杨阴里白沙堤。-唐,白居易本文...转载 2018-06-17 12:30:20 · 393 阅读 · 0 评论 -
(转载)Android常用对话框大全——学习笔记
下面就让我们一起来学习吧。老司机发车啦…一:最简单的对话框 AlertDialog dialog = new AlertDialog.Builder(this) .setIcon(R.mipmap.icon)//设置标题的图片 .setTitle("我是对话框")//设置对话框的标题 .setMessa...转载 2018-06-18 21:37:20 · 207 阅读 · 0 评论 -
(转载) 本文显示Android的权限大全和动态使用Android权限方法,用于学习
本文显示Android的权限大全和动态使用Android权限方法 一.权限大全 常用权限访问网络android.permission.INTERNET访问网络连接可能产生GPRS流量写入外部存储android.permission.WRITE_EXTERNAL_STORAGE允许程序写入外部存储,如SD卡上写文件获取网络状态android.permission.ACCESS_NETWORK_...转载 2018-06-19 22:41:35 · 226 阅读 · 0 评论 -
(转载)Android动态请求权限的工具类(可请求多个,并且功能完善)
本文转载自https://blog.youkuaiyun.com/wenzhi20102321/article/details/80616197用于参考学习Android动态请求权限的工具类Android 6.0(SDK 23)以上才需要用到动态权限。之前已经写过好多次关于Android动态权限的文章,但是后期发现每次都要进行复制粘贴,还要修改,还不如写一个自己的工具类,那就方便多了!网上也有很多关于动态权限...转载 2018-06-19 22:43:18 · 306 阅读 · 0 评论 -
Android中Handler导致内存泄漏的原理分析
本文转载自天宇1. 简介在写Android应用程序时,Handler应该是很常见的一个类。我们一般在使用该类时有采用如下方法:// 1.新建一个匿名的Handler内部类,并重新handleMessageprivate Handler mHandler = new Handler() { @Override public void handleMessage(Mes...转载 2018-07-04 19:35:01 · 242 阅读 · 0 评论 -
Android 3种Notification使用方法
Notification可以让我们在获得消息的时候在状态栏,以及锁屏界面显示对应的信息,接下来介绍3种Notification,分别是普通Notification,折叠式Notification,悬挂式Notification。Notification 的创建主要涉及到 Notification.Builder 、 Notification 、 NotificationManager 。...原创 2018-07-25 13:58:44 · 748 阅读 · 0 评论 -
Android Fragment简单切换用法
目的:创建5个左右滑动的fragment,实现各自功能效果:实现:创建类FragmentAdapter继承FragmentPagerAdapter: package denghuashan.filetransfer;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentMana...原创 2019-01-20 14:14:07 · 520 阅读 · 1 评论