![](https://img-blog.csdnimg.cn/direct/489199a0433b451b9539d613c1768e49.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Android
文章平均质量分 85
Android
小林望北
一鲸落,万物生。
展开
-
如果判断小米MIUI的NFC权限、后台弹出界面权限是否禁用
list ConcurrentModificationException原创 2019-12-05 12:20:17 · 6339 阅读 · 7 评论 -
再次封装权限动态申请工具类
一、写在前面关于Android6.0的动态权限申请的博客已经多到没办法再多了,我为什么要再次封装呢?因为那些博客给的都是一些零零散散的代码,或者一个完整的库,不容易修改。我这里会把工具类用kotlin写成一个文件,只要复制粘贴过去你项目就能用了,不行的话再做小修改就行。二、使用方法先上使用方法,后面再贴代码,和解释。已Camera为例,先在Manifest里面声明。<uses-pe...原创 2019-12-05 12:14:11 · 863 阅读 · 0 评论 -
用IDEA查看SDK中的源码
在座的各位大佬一般都是怎么查看源码的呢?我直接用IDEA来看很爽啊!原创 2019-11-17 05:18:10 · 1577 阅读 · 2 评论 -
夜夜使用的setContentView()里面到底做了什么?
一、写在前面我们都知道继承Activity的onCreate()方法然后setContentView(R.layout.xxx)可以设置我们自己的布局文件,但是布局文件生成的View到底添加到哪里去了呢?首先在Activity这个类中我们可以看到有个mWindow变量,这个变量是在attach()方法里面创建的:mWindow = new PhoneWindow(...),然后在我们setCon...原创 2019-11-17 04:37:49 · 414 阅读 · 0 评论 -
从源码看Activity的生命周期
一、写在前面前面写了《从源码看Application的启动流程》,接下来该看看Activity的生命周期了。ActivityManagerService在attachApplicationLocked()方法里面调用thread.bindApplication()启动Application之后,会继续往下走,继续启动Activity。二、大致流程三、详细流程四、源码分析(基于API28)...原创 2019-11-14 11:57:12 · 319 阅读 · 0 评论 -
从源码看Application的启动流程
开篇废话开篇废话就真的是废话,强烈建议直接跳过。一直看重用户体验的我,很想做好一款超级好用的产品,但我只是一个默默开发的开发,一切都要跟产品大佬的奇葩需求走(这里也体谅一下产品吧,产品也是跟用户走的,还要考虑收益等等问题)。好多好多年前就开始用CSDN了,可能是早期用户的原因吧,博客质量不怎么样,但是总排名在前万名,可以看到数字,1w+就不显示数字了。一开始的CSDN是很丑的,没有支持Mark...原创 2019-11-04 01:26:52 · 202 阅读 · 0 评论 -
安卓屏幕适配必须了解的px ppi dpi density dip dp
概念px 英文叫pixel,就是像素的意思。比如我的一加七分辨率是1080*2340,就是宽度有1080个像素点。ppi 英文叫 pixels pe inch,就是每英寸有多少个像素。比如一加七手机默认是420像素/英寸。根据定义可以知道,同一个屏幕,同一个分辨率,这个值是固定的。dpi 英文叫 dots per inch,就是每英寸有多少个点,这个应该是历史遗留的说法,以前的打...原创 2019-10-31 23:01:45 · 554 阅读 · 0 评论 -
WIFI的相关操作
首先要获取 WifiManager,后面的所有操作基本上都要用到。val wifiManager = getSystemService(Context.WIFI_SERVICE) as WifiManager打开关闭WIFI打开或者关闭WIFI直接调用 WifiManager.isWifiEnabled = true / false 就可以了,但是要监听操作结果的话,有两种方法,一个是监听...原创 2019-10-31 23:00:14 · 1000 阅读 · 0 评论 -
协程(Coroutine-轻量级线程)的使用
一般我们需要异步操作的时候,都是通过多线程来实现的,但是线程的创建和开启是个耗性能的操作,开少量的线程没有问题,可是线程多了就有问题了,而且线程还会有各种数据同步的问题。协程作为一个轻量级的线程,可以完美解决这些问题。你试下开100万个线程?不死机我吃电脑。但是你开100万个协程,那是分分钟的事。这里只说android和kotlin中的使用。添加依赖// kotlin 版本ext.k...原创 2019-10-31 22:58:41 · 661 阅读 · 0 评论 -
超级简单的Android源码下载
方法一:根据官网教程下载官网文档:https://source.android.com/source/downloading下载方法文档已经写的很清楚了,源码会分为超级多个git库,所以谷歌搞了个叫 repo 的工具(windows可以试下用这个https://github.com/esrlabs/git-repo),可以集中下载管理,超级简单,但国外的东西通常都会有乱七八糟的问题出现,可以自...原创 2019-10-31 22:43:54 · 1403 阅读 · 2 评论 -
SurfaceView的经典写法
package com.example.test;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.view.MotionEvent;import android原创 2014-08-20 10:44:52 · 2050 阅读 · 0 评论 -
检测用户是否是第一次打开应用
很多时候我们需要检测用户是不是第一次打开应用,从而初始化一些数据,或者打开引导界面等等。/*方法一: * 在首次打开的时候检查是否存在文件(com.example.test.isFirstIn) * 如果已存在,证明不是第一次打开 * 不存在,证明是第一次打开;打开之后创建文件 * */File dir = getFilesDir();// /data/data/com.原创 2014-08-01 15:46:50 · 2976 阅读 · 1 评论 -
android中9-patch图片的使用
看了很多文章的介绍,9.png图片有两种区域:可扩展区和内容显示区。弄了半天才明白什么叫做可扩展区,什么叫做内容显示区。分享一下自己的理解。下图是某博客的截图:图片来自:http://blog.csdn.net/greatstar/article/details/5936177一个9.png图片的上下左右有4跟黑线,或者黑点。通俗的理解就是:上方的线:横向拉伸的区域原创 2014-11-12 16:27:36 · 2092 阅读 · 0 评论 -
HorizontalScrollView实现多页左右滑动
先上图看看效果:上代码:PageView是封装后的一个类,继承了HorizontalScrollView。package com.example.testandrid;import android.content.Context;import android.util.AttributeSet;import android.util.DisplayMetrics;im原创 2015-01-04 14:57:12 · 8053 阅读 · 0 评论 -
调用系统分享功能
//分享文字Intent intent = new Intent(Intent.ACTION_SEND);intent.putExtra(Intent.EXTRA_TEXT, "要分享的文本。");intent.setType("text/plain");startActivity(Intent.createChooser(intent, "分享"));//分享图片Uri uri =原创 2015-03-11 10:16:56 · 1962 阅读 · 2 评论 -
内容提供者写法
内容提供者写法 内容提供者主要是提供接口给第三方应用调用,增删改查。原创 2015-05-25 01:27:03 · 1746 阅读 · 0 评论 -
AIDL的简单使用
1 AIDL(Android Interface Definition Language):接口定义语言。 2 当需要在不同的进程之间传递对象时,比如在不同的应用之间传递对象的时候,就需要使用AIDL。 3 AID使得一个应用能够调用另一个应用的服务。原创 2015-06-13 23:23:26 · 1214 阅读 · 1 评论 -
Android通过Intent.ACTION_CLOSE_SYSTEM_DIALOGS监听Home按键事件
原文链接:http://www.itnose.net/detail/6115323.html 这个参考了太多,算转载吧,我也不知道怎么样才算原创。比如有些博客参考了别人博客的部分代码,然后另外大部分是自己写的,那算不算原创,,,也罢,目的也只是记录一下,同时调整一下布局,弄的好看点,以便以后参考。安卓手机中底下都会有三个安卓(魅族奇葩),菜单,返回,HOME键。 返回键用的最多,有独立的方转载 2016-01-25 16:14:55 · 12273 阅读 · 1 评论 -
RecyclerView 的使用
一直使用ListView,也没觉得有什么问题,可能还是自己太菜了。 官方突然出了个RecyclerView,据说是专门替代ListView的,也没觉得好用多少,还是因为自己太菜了。 不管怎么说,要紧跟时代的潮流,尽管不喜欢,也要去学习,说不定学着学着就爱上了呢~废话不多说,坚持自己一贯的风格,尽量把代码写的最简单。一上效果图,二上代码,注释都在代码中。 效果图是个美女...原创 2016-04-22 16:50:07 · 955 阅读 · 0 评论 -
安卓中MVP模式和RxAndroid的具体实现例子
在MVC框架中,View是可以直接读取Model模型中的数据的,Model模型数据发生改变是会通知View数据显示发生相应的改变。 而在MVP中Model和View之间的没有任何联系,是两个完全独立的模块,当Model模型发生数据改变时,通过Presenter通知View视图发生相应的UI改变。原创 2015-10-24 11:27:23 · 15911 阅读 · 23 评论 -
Sources for Android API 23 Platfrom not found (Android Studio 2.0)
解决方法1: File -> Settings -> Appearance & Behavior -> System Settings -> Android SDK. 点击右边的Edit,然后下一步下一步下一步,,,收工。 参考连接:StackOverFlow - Sources for Android API 23 Platfrom not found (Android Studio 2.0)原创 2016-07-27 12:05:27 · 5650 阅读 · 6 评论 -
HandlerThread的简单使用
这里只是写了个HandlerThread的简单栗子,什么也不多说。 以后有时间再说一下原理什么的。package com.audienl.test;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.os.Handler;import原创 2017-04-04 17:48:31 · 711 阅读 · 0 评论 -
发布aar(包含源码)到Github上供别人依赖引用
这篇博客就是记录一下怎么把自己写的框架打包成aar,并发布到Github的仓库上,全世界人民都可以通过gradle简单的一句compile就可以使用了。原创 2017-11-07 15:02:58 · 2946 阅读 · 4 评论 -
禁止滑动的ViewPager
禁止滑动的ViewPager ViewPager非常好用,但有时候需要在ViewPager的里面再嵌入ViewPager,那么就有冲突了,简单粗暴的方法就是直接把一个ViewPager禁止滑动。原创 2015-07-31 12:18:17 · 22505 阅读 · 12 评论 -
安卓Touch事件的分发流程
想要进一步提升开发水平,事件分发机制是绕不开的。 网上也又各种博客分析源码,我也是看得一半一半懂,其实都是Java源码,慢慢看多几遍还是能看懂的,没有这个自信就不是程序员了。 这篇博客不写源码,不写分析,仅仅是总结出Touch事件的分发流程。需要知道的东西原创 2017-11-09 14:54:16 · 389 阅读 · 0 评论 -
获取屏幕的大小尺寸
获取屏幕的大小尺寸@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取屏幕的长度和宽度 DisplayMetrics dm =原创 2013-08-11 18:34:23 · 1290 阅读 · 0 评论 -
android 开机自启动
原理:Android系统在开机的时候会发出一个广播。这样我们就可以接收这个广播,然后 启动我们的应用。广播接收器必须在xml里面配置,因为xml里面配置的广播接收器 是不随着应用的退出而退出的。广播接收器:package com.yangshidesign.boot;import android.content.BroadcastRe原创 2014-06-20 16:31:53 · 3939 阅读 · 0 评论 -
fastjson 的简单使用
public static void main(String[] args) { /*普通对象与json相互转换*/ User u = new User("miquan", "000"); //{"@type":"testjava.User","password":"000","userName":"miquan"} String jsonUser = JSON.toJSON原创 2014-07-07 17:35:12 · 2278 阅读 · 0 评论 -
监听手指左右滑动屏幕的事件,封装好了一个类
左右滑动是智能手机最常用的动作,在此简单的封装了一下,以后直接拿来用就可以了。简单的只需要几行就可以了,下面那个类是封装好了的。package com.example.test;import android.os.Bundle;import android.app.Activity;import android.content.Context;import android原创 2014-03-31 06:07:39 · 14289 阅读 · 2 评论 -
This Android SDK requires Android Developer Toolkit version 20.0.0 or above
本人最近在操作更新ANDROID SDK时出现类似于题目中的错误,是一启动ECLIPSE时。但是,我现在只是想恢复到原先的开发环境。于是找到本文,方法有效!!!windows 下面安装Android虚拟机,有时候选择更新SDK后,在Eclipse preference里指向android_sdk_windows_x86时。会出现诸如This AndroidSDK requires A转载 2014-03-30 16:07:19 · 1494 阅读 · 0 评论 -
OrmLite 一对多
项目中要用到一对多,所以就稍作了解了一下,测试成功的代码,记录一下。一个User对应一个Department,一个Department对应多个User。package com.example.aandroidtest;import com.j256.ormlite.field.DatabaseField;import com.j256.ormlite.table.DatabaseTa原创 2014-03-27 18:49:19 · 5104 阅读 · 4 评论 -
闪关灯的开启和关闭
1、activity_main.xml 两个按钮,一个open一个close<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_pa原创 2014-03-12 17:49:46 · 1089 阅读 · 0 评论 -
用Activity的onTouchEvent方法实现监听手指上下左右滑动
用Activity的onTouchEvent方法实现监听手指上下左右滑动应用了Activity的ontouchEvent方法监听手指点击事件,手指滑动的时候会先按下,滑倒另一个地方再抬起,我们就可以根据按下的坐标和抬起的坐标算出用户是往哪一个方向滑动了。package com.example.testtt;import android.app.Activity;import原创 2013-08-11 19:27:58 · 42012 阅读 · 13 评论 -
用Handler写简单的计时功能
用Handler写简单的计时功能就是一个每隔3秒中就弹出一个Toast。package com.example.testtt;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.widget.Toast;public class Main原创 2013-08-11 19:07:40 · 2471 阅读 · 0 评论 -
android开发-画笔画布画几何图形
android开发-画笔画布画几何图形一个activity,显示一个viewactivity:package com.example.test;import android.os.Bundle;import android.app.Activity;import android.view.Menu;public class MainActivity extends原创 2013-08-09 18:59:10 · 1451 阅读 · 0 评论 -
android开发-手机屏幕全屏显示
android开发-手机屏幕全屏显示package com.example.aaaa;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.Window;import android.view.WindowManager;publ原创 2013-08-09 18:33:50 · 1404 阅读 · 0 评论 -
android开发-TextView长文本,有滚动条
android开发-TextView长文本,有滚动条先看效果,用一个textview保存很长很长的文字布局一个TextView,外面套一层ScrollView<ScrollView android:id="@+id/scrollView1" android:layout_width="fill_parent" androi原创 2013-08-09 15:33:14 · 8163 阅读 · 4 评论 -
android开发-通过HttpURLConnection获取网络内容,Bitmap把二进制格式的图片转为位图
android开发-通过HttpURLConnection获取网络内容,Bitmap把二进制格式的图片转为位图布局:用ImageView显示图片<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" a原创 2013-08-09 15:44:24 · 8226 阅读 · 2 评论 -
android开发-广播的基本用法
android开发-广播的基本用法注册receiver有两种方法,视频里说的。一种是用xml注册,一种是直接在代码里面注册。一, 用xml注册receiver。注意:用xml注册的receiver并不随程序关闭而关闭。你关闭了程序,但是receiver并没有关闭,要注意。布局:一个按钮<LinearLayout xmlns:android="http://sch原创 2013-08-09 15:18:06 · 1736 阅读 · 0 评论 -
ormlite 的简单应用
在android开发中还有哪些技术可以方便的操作数据库,我不大清楚,今天学习了一下 ormlite,觉得还不错,非常方便。ormlite官网下载:http://ormlite.com/releases/1、引入jar包2、写实体类package com.example.aandroidtest;import com.j256.ormlite.field.Database原创 2014-03-19 13:56:21 · 4249 阅读 · 0 评论