Android相关
文章平均质量分 88
键盘舞者113
你的star就是我的动力,https://github.com/979451341
展开
-
Android 崩溃记录
这篇文章用于记录各种崩溃细节,从而对处理和预防崩溃更加游刃有余。原创 2020-12-29 15:51:07 · 1004 阅读 · 0 评论 -
Android蓝牙开发小结
因为之前有做与蓝牙有关的项目,所以这里写个博客总结一下。原创 2020-04-02 14:09:00 · 1454 阅读 · 0 评论 -
IdleHandler的使用和源码解析
1.作用IdleHandler用于执行耗时较短且非必须的任务,它会在消息队列空闲时执行任务,可以用于性能优化。2.使用queueIdle函数返回false的话,这个任务会被执行一次,如果返回true,则消息队列空闲时就执行(注意不是只要空闲了就不断执行,而且空闲后就执行一次) var handler:MessageQueue.IdleHandler = obje...原创 2020-03-07 10:36:39 · 916 阅读 · 0 评论 -
Android Hybrid 学习过程 一 WebView和JavaScript交互
这几年web app和Hybrid app非常热,因为web本身适合复杂的布局而且效率也很高,但是本人是一个更喜欢android的,所以我就讲混合式app也就是Hybrid android。 这一次先做一个android与JavaScript交互的例子。 上代码public class MainActivity extends Activity { /** Called when the原创 2017-03-27 17:57:59 · 1356 阅读 · 0 评论 -
Android Hybrid 学习过程 二 js警告框和确认框替换
这篇写的是js调用的确认框和警告框通过android代码调用替换 上代码public class MainActivity extends Activity { /** Called when the activity is first created. */ private WebView webView; private Button button; @Over原创 2017-03-28 12:46:57 · 1207 阅读 · 0 评论 -
Activity生命周期各情景分析(更新:2021.7.8)
onCreate:负责创建Activity和相关配置,还有布局的初始化 onStart:这个时候我们可以看到Activity的界面,但还不能与用户交互 onResume:现在可以与用户交互 onPause:Activity被部分遮挡,Activity不能与用户交互,与onResume相对 onStop:完全Activity不可见,但是Activity还存活,与onStart相对 onDe...原创 2017-03-21 13:04:34 · 1700 阅读 · 0 评论 -
AIDL使用方法
本次我想讲一下在AIDL的使用方法,目前它还是最强大的进程间通信方法,支持一对多并发通信,支持实时通信。1.传输基础类型我使用一个简单例子简述整个AIDL的搭建过程 首先创建一个AIDLServer工程,包的路径为com.example.aidlserver,我们添加一个AIDL文件package com.example.aidlserver; interface IR...原创 2017-03-22 10:33:21 · 2550 阅读 · 0 评论 -
Android Hybrid 学习过程 三 WebView设置缓存
我先上一个加载百度网页的代码,作为基础代码,接下来的会在这上面加代码讲解<uses-permission android:name="android.permission.INTERNET"/>网络权限,这个没有上不了网<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.原创 2017-03-30 10:05:01 · 1660 阅读 · 0 评论 -
说说AIDL生成的Java代码
首先的说明,本篇博客是从AIDL生产java代码这方面入手说明的,而且使用的是上一篇博客的项目做示范项目,所以我在本篇博客我只会贴出部分关键代码,其他代码请看上一篇博客。 https://blog.csdn.net/z979451341/article/details/64905709我在com.example.aidlserver路径创建一个AIDL文件interface IRem...原创 2017-03-23 14:11:18 · 3947 阅读 · 0 评论 -
Android Hybrid 学习过程 四 WebView所有相关类使用说明
因为关于WebView的相关细节还有很多,我就不一一写例子说明,一口气全写出来凭注释说明了1.WebSetting用于配置WebVIew的类 WebSettings webSettings = mWebView.getSettings(); if (webSettings == null) return; //设置字体缩放倍数,默认10...原创 2017-03-30 13:16:12 · 1274 阅读 · 0 评论 -
Android 自制浏览器 一 能够跳转链接并返回
我们首先将自制的浏览器做到以下功能: 点击链接能够跳转网页; 能够返回原来的网页; 能够判断是否这是最先浏览的网页,如果按两次back键就退出。 通过输入框输入网址,能够访问对应的网页。 我们先对局部代码讲解,我会在最后公布完整代码 首先加载网页JavaScript必须能够支持 WebSettings ws = web.getSettings(); //是否原创 2017-03-31 10:31:31 · 1954 阅读 · 0 评论 -
Android 自制浏览器 二 前进后退返回主页退出
这一次我对网页的浏览添加前进后退,退出,返回主页的功能。 上代码,public class MainActivity extends Activity implements View.OnClickListener { private EditText et_url; private Button btn_visit; private WebView web; privat原创 2017-03-31 12:45:03 · 2565 阅读 · 0 评论 -
Android RemoteView的应用 一 桌面控件
这回通过RemoteView来制作一个能够接受点击事件的桌面控件。 1. 在res/layout 新建widget文件,这是设计桌面控件的界面<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:l原创 2017-04-10 12:18:28 · 2455 阅读 · 0 评论 -
Android RemoteView的应用 二 通知栏
这一次我们通过使用RemoteView来制作一个通知栏 这个通知栏由一个ImageView和TextView和Button构成,点击Button会跳转到TwoActivity,点击到其他位置会跳转到MainActivity。 1. 先创建一个Notification Notification notification = new Notification(); notification.i原创 2017-04-10 15:37:03 · 2187 阅读 · 0 评论 -
Android RemoteView的应用 三 新年倒计时通知栏
这个新年倒计时桌面小部件制作很简单,只是通过Timer不断刷新RemoteView就能做到 1. 在res/layout新建main作为部件的界面<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:or原创 2017-04-10 16:55:44 · 1558 阅读 · 0 评论 -
Binder的使用方法和源码解析
1.BInder驱动机制说明首先Binder是用于进程间通讯,这个我们都知道,但是它是基于Binder驱动来完成进程间通讯的。Binder驱动是一个驱动程序,而这个驱动程序存在于Linux内核层,Linux内核层又可以说是操作系统层,是进程的管理者。一个进程A要调用进程B的一个方法,这个进程A就需要获取进程B的Binder代理对象,这个BInder代理对象就是进程B的BInder本地对象。...原创 2017-04-01 10:01:59 · 2692 阅读 · 0 评论 -
Android IntentService的使用详情和源码解析
IntentService是一个Service的子类,但是他和一般的Service不一样,它能够异步执行耗时任务,也就是他自己会开启子线程,并且任务执行完会自动执行onDestroy。从源码来看,是基于Handler和Service来实现的。1.使用详情首先我贴出一个简单的例子,看看IntentService具体运行过程public class MyIntentService ...原创 2017-03-25 16:51:24 · 1456 阅读 · 0 评论 -
Handler使用详情与源码解析
Handler作为Android两大通讯系统之一的消息机制,另一个是Binder机制(可以看看这篇博客来了解https://blog.csdn.net/z979451341/article/details/68941459),我们这一次首先说说Handler在各种情况的使用,然后再从Java代码方面来进行源码解析一.概念Looper:一个线程只能有一个,通过Looper.myLoope...原创 2017-03-26 10:59:17 · 1715 阅读 · 0 评论 -
Android四种线程池的使用详情
一. 线程池的作用和概念 (1)作用 能够重复使用线程池的线程,节约系统开销,并且能够控制创建的线程数量。 能够对线程进行管理,使线程能够定时执行和时间间隔循环执行。 (2)概念 corePoolSize:线程池的核心线程数,核心线程默认一直存在线程池包括闲置状态,当然也可以设置超时策略,闲置时间超过规定时间就会被杀死。 maximumPoolSize:线程池的最大线程数,,如果...原创 2017-03-26 18:23:44 · 1536 阅读 · 0 评论 -
Activity销毁重建时保存和恢复状态
一. onSaveInstanceState 这个函数的作用是当系统判断当前activity可能会被销毁时,保存当前activity控件的状态,如果当前activity没有销毁,并我们返回到此activity这个函数能够复原控件的状态 触发时机: 1. 用户按下home键 2. 按下电源按键 3. 在当前activity启动一个新的activity 这个函数是我默认启动的,所以我原创 2017-04-12 20:46:20 · 2409 阅读 · 0 评论 -
React-native学习过程 三 通过网络获取数据
这次讲的是如何从网上获取数据,并显示出来 首先将获取对象的URL放在最上面var REQUEST_URL = 'https://raw.githubusercontent.com/facebook/react-native/master/docs/MoviesExample.json';初始化数据constructor(props) { super(props); this.sta原创 2017-04-04 22:13:44 · 3414 阅读 · 2 评论 -
DialogFragment完成QQ评论输入框
因为Fragment能够根据Activity的情况自动改变生命周期,而通过使用DialogFragment制作对话框,关于生命周期的管理比较容易,也不会出bug,所以Google后来推荐使用DialogFragment而不是AlertDialog。关于DialogFragment的使用我们只需使用show函数就可以显示它,而且他也可以设置点击其他区域取消对话框,使用方法和AlertDialog...原创 2017-04-18 18:08:14 · 1698 阅读 · 0 评论 -
Android Scroll实现弹性滑动 一 列表下拉弹性滑动
我这一次讲使用scroll实现弹性滑动,我不会只有一个例子就说完,因为写文章的时候我也在学习,我分几次讲完吧。首先上一段代码,private void smoothScrollByScroller(int dy){ mScroller.startScroll(0,dy,0,dy*-1,1000); invalidate();}@Overridepublic void comput原创 2017-04-19 21:06:54 · 3757 阅读 · 0 评论 -
Android Fragment各种使用情形
版本 Fragment,是Android 3.0(API 11)提出的,为了兼容低版本,support-v4库中也开发了一套Fragment API,最低兼容Android 1.6。官方对于Fragment的定义: Fragment是依赖于Activity的,不能独立存在的。 一个Activity里可以有多个Fragment。 一个Fragment可以被多个Ac...原创 2017-04-15 20:50:28 · 1374 阅读 · 0 评论 -
高仿2017手机QQ
前些天我一直在做一个仿手机QQ的项目,这个制作过程我就不说了,直接上项目下载地址我的github账号的地址是 979451341 https://github.com/979451341仿QQ项目地址是 979451341/MyQQ: 这是一个仿QQ的应用,基本大部分手机2017QQ的特效都做出来 https://github.com/979451341/MyQQ原创 2017-07-18 17:11:19 · 2006 阅读 · 2 评论 -
Android 谷歌推荐的VR实现方式
谷歌有专门的SDK来完成VR,我这次以一个全景图片的例子来说一下这个SDK实现VR的基本过程,首先全景图片就是百度地图里的那样,能够看到周围环境360的图片。添加依赖compile 'com.google.vr:sdk-panowidget:1.80.0'添加权限<uses-permission android:name="android.permission.INTERNET"/><uses-p原创 2017-09-22 18:54:24 · 1626 阅读 · 0 评论 -
Android 音乐播放器的通知栏
Android音乐播放器的通知栏效果说明 我点击×按钮会关闭通知栏和应用, 点击停止按钮会在界面显示停止并且这个按钮的图片换成播放图片,再点击一次界面显示播放,且图片换回来 点击上一首和下一首按钮会在界面上分别显示上一首和下一首的字符串。制作过程首先我先贴一些关键代码,源码地址最后给出public class MainActivity extends AppCompatActivity {原创 2017-10-05 11:52:03 · 6618 阅读 · 0 评论 -
RecyclerView获取某个item的VIewHolder、View为空的问题
就一句话,这个Item是否可见,可见获取得到,不可见获取为空1.RecyclerView的缓存机制mAttachedScrap用于itemView的重新排列,比如item的拖拽移动。mChangedScrap则是用于局部更新。mCacheViews,ViewCacheExtension,RecycledViewPool.则是真正用于holder的缓存和复用,比如你往下滑,一个...原创 2018-01-18 18:01:08 · 20271 阅读 · 0 评论 -
Android Studio 最好用的快捷键和插件、自带工具助你快速开发
快捷键Command + E 显示最近打开的文件Command + Shift + E 显示最近编辑的文件Command + B 搜索鼠标停留的函数在当前类的哪些位置Command + X 剪切鼠标位置一行代码,或者剪切选择的代码Command + F 查找代码、类、软件命令command+Shift+/ 注释代码段插件GsonFormat:能够将gson字符段转换为实体类Android...原创 2018-01-10 19:49:30 · 1958 阅读 · 0 评论 -
Android7.0手机程序保活(附源码下载)
项目地址,求starhttps://github.com/979451341/AppAlive本人在学习音视频时无意发现的黑科技,发现在使用AudioTrack播放音乐时,使用手机的一键清理发现程序还在,我指的是Activity还活着。 我当时就想起来了酷狗音乐也是这样,当我没有播放音乐时,这个酷狗音乐通过我一键清理会死掉,如果我播放音乐再一键清理就不会死,而且它还有前台通知原创 2018-02-07 15:37:47 · 3390 阅读 · 0 评论 -
Android面试重难点(更新:2021.10.17)
现在分为Android篇和Java篇、还有一些其他人收集的面试题网页地址。关于笔试用 牛客网就可以了Android篇Retrofit源码解析https://mp.weixin.qq.com/s/2B5WpV220FKSMbDvX7A4zQ NewsApi api = new Retrofit.Builder() .b...原创 2018-03-15 15:04:50 · 4825 阅读 · 0 评论 -
阿里推荐的线程使用方法 ThreadPoolExecutor
阿里推荐原因:使用线程池可以减少创建和销毁线程上所花的时间以及系统资源的开销,然后之所以不用Executors自定义线程池,用ThreadPoolExecutor是为了规范线程池的使用,还有让其他人更好懂线程池的运行规则。先说一下关于线程的概念任务:线程需要执行的代码,也就是Runnable任务队列:线程满了,就任务就放入任务队列里等待,等其他任务在线程里执行完,这个线程就空出来了,任务队列就将最...原创 2018-03-03 15:53:07 · 6908 阅读 · 0 评论 -
Java 线程调度我就写一篇(Object与Semaphore、Lock、Callable、Future、FutureTask)
一.Object一般来说Synchronized 同步锁就能解决大部分线程同步问题,但是如果情况比较复杂就不行了,这就得用Object的wait(),notify(),notifyAll()。但是这个三个函数只能实现不公平锁,Semaphore能够实现公平锁和不公平锁,后面再说。概念Synchronized:同步锁,指的是他能锁住对象、类、函数、代码块,使得同一时间不同线程这些东西只能...原创 2018-03-17 10:11:49 · 1539 阅读 · 0 评论 -
Android SQLite多线程读写和线程同步源码分析
没啥诀窍,只需保证几个线程都是用的一个SQLiteDataBase对象就行了。如果我们非要在不同线程中用两个或更多的SQLiteDataBase对象呢,当然这些SQLiteDataBase对象所操作的是同一个数据库,也就是同一个db文件,这个就是这篇博客的重点了(ps:使用到的代码将在博文结尾贴出)第一种情况:一个SQLiteDataBase对象不同线程两个子线程执行修改数据库操作,三个子线程执行...原创 2018-03-17 16:56:22 · 5585 阅读 · 1 评论 -
Android 使Camera预览清晰,循环自动对焦处理
我们经常使用SurfaceView显示Camera预览画面,但画面基本都不清晰。主要是因为没有自动对焦,而自动对焦触发是通过mCamera.autoFocus(autoFocusCallback);这个函数,但是只会起一次作用,后面画面清晰度有一直这样,但是随着拍摄目标的距离变化,这个画面不在清晰,需要再次对焦。所以我这里主要通过循环自动对焦来完成。SurfaceView如何显示Camera预览画...原创 2018-03-05 15:44:58 · 11375 阅读 · 3 评论 -
Android ORC文字识别之识别身份证号等(附源码)
项目地址https://github.com/979451341/OrcTest我们说说实现这个项目已实现的功能,能够截图手机界面的某一块,将这个某一块图片的Bitmap传给tess-two的代码来获取扫描结果我这里在贴出tess-two这个专为Android而创建的文字识别框架的地址https://github.com/rmtheis/tess-two接下来我就说我如何一步一步的实现项目1.实现...原创 2018-03-06 15:47:15 · 8494 阅读 · 5 评论 -
Path我就写一篇(更新:添加圆形表格实现,2018.10.26)
我就一篇写完Path几乎所有的用法,有点长,请细心看 先贴出GcsSloop大神整理的Path函数图片(ps:Android5.0以上的方法,他没整理)直接来正题,创建自定义View,创建画笔设置颜色public class MyView extends View { private int mWidth; private int mHeight; ...原创 2018-03-14 16:17:32 · 1851 阅读 · 0 评论 -
ThreadLocal使用方法与源码解析
1.ThreadLocal的使用方法ThreadLocal能够存储数据,作用域是线程。首先我示范一些下这个ThreadLocal如何使用,并分析一下使用的结果,让我们能够更加清晰的理解ThreadLocal作用域为线程这个特点,方便后面源码解析。我在Activity里创建一个静态的ThreadLocal类,并且创建了三个线程,这个三个线程通过点击按钮来触发执行。这里要注意我已经赋值ThreadLo...原创 2018-03-26 14:24:55 · 2014 阅读 · 0 评论 -
Android 性能优化实践(更新:2020-8-10)
1.根据Android Lint的提示来修改代码菜单栏上面的Analyze——》Inspect Code,他这里可以选择整个项目、一个module、或一个java来进行扫描我这里选择整个项目,Android Lint能够指出一些你没有发现的隐患或者能够优化代码的地方,如果看到error程度的提示也不要晃,它可能有些误会,至于warnings,太多了,大家根据内容选...原创 2018-03-22 11:54:00 · 1849 阅读 · 0 评论 -
Fragment生命周期情景分析和源码分析
onAttach():Fragment和Activity相关联时调用。可以通过该方法获取Activity引用,还可以通过getArguments()获取参数。onCreate():Fragment被创建时调用。onCreateView():创建Fragment的布局。onActivityCreated():当Activity完成onCreate()时调用。onStart():当Fragment可见...原创 2018-04-10 11:28:26 · 1912 阅读 · 0 评论