Android 学习
文章平均质量分 71
sky_brian
日拱一卒无有尽,功不唐捐终入海。
展开
-
Android P监听WIFI 状态的变化
1.需求:需要监听WIFI的的连接状态,之前在网上搜的一些老资料发现不能实现,获取的状态不够准确。故自己写个备份。package com.example.user.networkchangelistener;import android.content.Context;import android.content.Intent;import android.net.Network...原创 2018-12-27 11:04:13 · 1945 阅读 · 0 评论 -
服务器配置git
1.下载git sudo apt-get install git2.配置仓储 git config --global user.name "eva"git config --global user.email "eva.lee@hsditech.com"3.初始化当前目录 git init4.查看当前是用户配置git config原创 2017-02-14 18:04:01 · 313 阅读 · 0 评论 -
不同应用之间共享数据!
平时公司开发的一些软件或者和其他公司合作的一些软件会涉及到应用之间的数据共享,这里提供一种方式,后面还会对另一种方式进行说明。第一种,通过SharedPreferences 和强大的createPackageContext() 方法可以完全满足要求。但前提条件是要知道应用的两个东西1.android:sharedUserId;2.packageName两个应用的andr原创 2017-02-09 16:57:02 · 2822 阅读 · 0 评论 -
解决Ubuntu 的Android-studio 在线下载gradle 文件。
在中国当程序员还是比较苦逼的,毕竟找个软件还是要动不动被墙的。悲伤不要那么大。如果你是用gradle来build项目时,在启动AS的时候出现会这个界面,那意味你要被这无情的网给折磨致死。这个时候你可以 你可以大方的关掉它,使用另外一种方式去配置这个gradle.1.下载你需要的gradle,这个你可以从窗口中看到他想要去下载的地址和gradle的版本。很明显,我原创 2016-11-25 16:10:51 · 4138 阅读 · 0 评论 -
Android CountDownTimer 简单实例
概述:定时执行一段时候后停止的倒计时,在倒计时执行过程中会在固定间隔时间得到通过onTick()得到通知。XML 代码:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" a原创 2016-12-13 12:02:59 · 459 阅读 · 0 评论 -
CTSVerifier test 教程
CTS Verifier算是CTS的一部分,需要手动进行,主要用于测试那些自动测试系统无法测试的功能,比如相机、传感器等。由于硬件配置或其他原因,不同手机上部分测试项目被隐藏,也就是说CTS Verifier中case的总数,取决于测试机支持哪些功能, CTS Verifier总共包含以下15个功能:· Camera· Clock· Device转载 2016-05-11 09:45:56 · 2132 阅读 · 0 评论 -
为什么 Android 手机总是越用越慢?
转自开源中国。不错的文章。根据第三方的调研数据显示,有77%的Android手机用户承认自己曾遭遇过手机变慢的影响,百度搜索“Android+卡慢”,也有超过460万条结果。在业内,Android手机一直有着“越用越慢”的口碑,这个现象甚至超出了硬件范畴——很多中高端Android手机在硬件参数上都优于同一代iPhone,但是它们仍然会在使用半年到一年的时间后进入“欠流畅”的状态——这转载 2016-01-11 10:47:13 · 600 阅读 · 0 评论 -
进程和线程关系及区别
1.定义进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.转载 2015-12-07 17:17:46 · 376 阅读 · 0 评论 -
带边框的文本框TextView
默认情况下,TextView是不带边框的,如果想为TextView添加对话框只能为TextView设置一个背景Drawable,该Drawable只是一个边框,还可以指定渐变背景。这样子就可以为TextView添加边框了。/TextViewDemo/res/layout/activity_main.xml<LinearLayout xmlns:android="http://schemas原创 2016-01-08 14:58:46 · 1189 阅读 · 0 评论 -
Android 系统稳定性 - ANR(三)
1.4 如何避免ANR 1.4.1 ANR发生在主线程,不要阻塞主线程 Android应用程序的所有标准组件全部运行在一个单一的主线程中,在主线程中所做的任何耗时的操作都有可能造成ANR,因为这些耗时的操作会使得主线程没有机会处理用户输入事件或者广播事件。 因此在主线程中执行的任何函数所做的工作都应该尽可能的少,特别是对于Activity的生命周期函数来转载 2015-11-28 15:42:11 · 608 阅读 · 1 评论 -
Android 系统稳定性 - ANR(一)
原文出处:http://rayleeya.iteye.com/category/89044如果你是一个Android应用程序开发人员,你的人生中不可避免的三件事情是:死亡、缴税和ANR。这么说是夸张了,但是由于Android本身的设计,以及应用程序和系统在开发过程中的缺陷,经常会在测试过程中遇到各种各样的ANR问题。在功能性的测试中还少一些,主要是在压力测试中(例如Monkey转载 2015-11-28 15:37:21 · 931 阅读 · 0 评论 -
java类加载器总结
转自:http://blog.csdn.net/gjanyanlig/article/details/68186551.类的加载过程 JVM将类加载过程分为三个步骤:装载(Load),链接(Link)和初始化(Initialize)链接又分为三个步骤,如下图所示:1) 装载:查找并加载类的二进制数据;2)链接:验证:确保转载 2015-12-15 15:07:10 · 383 阅读 · 0 评论 -
Android 系统稳定性 - ANR(二)
引起ANR问题的根本原因,总的来说可以归纳为两类:应用进程自身引起的,例如:主线程阻塞、挂起、死循环应用进程的其他线程的CPU占用率高,使得主线程无法抢占到CPU时间片其他进程间接引起的,例如:当前应用进程进行进程间通信请求其他进程,其他进程的操作长时间没有反馈其他进程的CPU占用率高,使得当前应用进程无法抢占到CPU时间片转载 2015-11-28 15:40:32 · 588 阅读 · 1 评论 -
Android 设计思想
设计思想 一个声明解释一些对Android开发者有用的技术思想和观点。通过阅读这一页,你将了解如何写出在嵌入式设备(比如,手机)上性能良好,并且与系统其他部分协作出色的应用。 设计思想 学习如何在一个新的API上创建应用的过程都是类似的,即便平台本身存在很大差异性。通常,有两个步骤:首先,你学习如何使用API来做你想做的事情;然后,你学习平台的细微差别。还句话说,你首转载 2015-11-28 11:20:32 · 538 阅读 · 0 评论 -
简易手电筒实现
此文章是因为有人问我怎么调用系统的闪光灯做手电筒才写出来的。比较简单,大牛见笑。1、XML文件内定义两个按钮开启和关闭手电筒的。简单不列出了。2、在Java文件中对两个按钮做出点击事件响应。调用了三个方法,torchOpen()、torchclose()、clear()。package com.example.torchdemo;import android.con原创 2015-10-13 15:37:58 · 916 阅读 · 0 评论 -
预置Chrome浏览器默认主页和书签
谷歌允许合作伙伴客制化Chrome的一些配置,如Chrome浏览器预置默认主页及书签,当预置成功后,将在状态栏看到主页的图标,可设置主页、主页的开启及关闭,可通过书签快捷打开对应网页。 客制化主要通过添加对应ChromeCustomizations.apk(主页) 及PartnerBookmarksProvider.apk(书签)来实现,具体实现方法如下:一、预置chr转载 2015-09-24 19:41:15 · 9881 阅读 · 4 评论 -
Linux chmod 命令
在Linux系统中,文件的访问者被划分为三类,并针对这三类用户指定不同的访问权限。这三类访问者是:user(u),用户自身,即与创建在一个组里面的用户。group(g),用户所在组,即与创建在一个组里面的用户。other(o),其他用户。chmod命令就是用户设置这三类访问者对某文件的访问权限。访问权限分为读(r)权限、写(w)权限、执行(r)权限。文件类型不同,“执行”的含义不同原创 2015-09-24 19:37:50 · 580 阅读 · 0 评论 -
给android源码加个服务Service
1.添加.AIDL文件/frameworks/base/core/java/android/os/IHelloService.aidlpackage android.os;interface IHelloService{ String test_service(String input);}在/frameworks/base/Android.mk 把aidl文件加入到源码原创 2017-02-24 15:27:05 · 2005 阅读 · 0 评论 -
android 如何添加被denied的权限
security context/*When SEAndroid is enabled, the following occurs:a, All objects on the system are labeled with a security context.Objects inlcude files,directoried,processes,sockets,drivers,and转载 2017-03-10 17:47:49 · 1674 阅读 · 0 评论 -
Android 延时执行某个任务,未执行之前可以移除
1.需求:当前开启搜索设备任务,因为没有搜索超时的回调方法导致手机当没有可用设备连接的时候会一直在搜索设备。所以这边做了一个搜索超时回调,当搜索超时停止搜索给用户一个信息反馈。2.代码实现在开始搜索的时候将消息放入消息队列,规定超时时间为一分钟public static final int SEARCH_DEVICE_TIME_OUT = 60*1000;private st...原创 2018-12-27 10:03:17 · 1839 阅读 · 0 评论 -
Android 将图片保存到本地,并实时更新图库。
1.需求:需要将远程传回的文件保存到本地,并实时更新图库 2.代码实现: private void saveScreenshotPictures(Bitmap mScreenshotbitmap){ fileName = "/storage/emulated/0/smarttv/screenshots/"+ generateF...原创 2018-12-27 09:44:47 · 2539 阅读 · 1 评论 -
Android ActivityLifecycleCallbacks 监听当前是否处于应用中的某些特定Activity界面
1.需求:有一个新功能需要做一个悬浮球,在功能页面的时候,悬浮球隐藏,不在则显示。因为这个功能代码是放在了SystemUI里面。不能直接判断当前的包名,只能判断当前的Activity是不是我们写的那几个。2.代码实现:判断当前Activity是不是我们写的那几个Activity,如果在不修改AMS的前提下可以通过注册一个ActivityLifecycleCallbacks 回调。注...原创 2018-12-26 17:58:07 · 1452 阅读 · 0 评论 -
Android 调用摄像头拍照或者相册图片设置头像Demo
该文章来源第一行代码+ Android里面有自己想要的东西就写出来了,大家要是有用得着的也比较方便直接复制代码。1.布局文件activity_main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"...原创 2018-06-08 09:54:32 · 1443 阅读 · 2 评论 -
Android 检测网络是否真的有效isNetworkConnected() 和ping()
1.isNetworkConnected() private boolean isNetworkConnected() { final ConnectivityManager connManager = (ConnectivityManager) mContext .getSystemService(Context.CONNECTI原创 2017-12-26 10:59:12 · 1839 阅读 · 1 评论 -
Android发送权限受限的广播,指定接受方!
本文实践代码是在Android7.1上的系统级源码上验证通过的。1.首先是发送方:在frameworks\base\core\res\AndroidManifest.xml中定义权限 <permission android:name="com.softmanager.permission.send.SOFTMANAGER" android:protectionLe原创 2017-10-11 15:11:14 · 5573 阅读 · 0 评论 -
Android中的获取控件矩阵gethitrect方法
原文地址:http://souly.cn/%E6%8A%80%E6%9C%AF%E5%8D%9A%E6%96%87/2015/07/31/Android%E4%B8%AD%E7%9A%84%E8%8E%B7%E5%8F%96%E6%8E%A7%E4%BB%B6%E7%9F%A9%E9%98%B5getHitRect%E6%96%B9%E6%B3%95/getHitRect的作用转载 2017-07-28 12:00:20 · 1389 阅读 · 0 评论 -
Android 读写文件转为String[]
1.写入文件中String filePath = Environment.getDataDirectory()+"/test"; private void writeData(){ String str = "com.android.mms"; try { File file = new File(file原创 2017-08-04 17:33:13 · 2422 阅读 · 0 评论 -
Android 判断当前手机中是否存在某一个action可以启动。
有的时候需要在某个程序里面由特定的条件跳转到设置或者其他的应用界面。我们一般采用的是根据某个特定的ACTIONT跳转到设置中去的。首先是判断我们的手机中是否存在我们要的这个actyion. private boolean isActionSupport(Context context,String action){ final Pack原创 2017-08-16 09:53:27 · 3313 阅读 · 0 评论 -
隐藏虚拟按键,但不进去全屏模式(沉浸模式)
新项目推出了有虚拟按键的机型。在某些界面上需要隐藏虚拟按键有几种1.Activity里面,在setContentView()方法之前使用一下方法可以达到隐去虚拟按键getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);2.在Dialog里面,在show(原创 2017-07-29 16:20:17 · 1454 阅读 · 0 评论 -
Android 反射机制备份
Class class = Class.forName("包名.类名"); Object object = class.newInstance(); Method setName = class.getDeclaredMethod("setName",String.class); setName.invoke(object,"eva");原创 2017-06-22 11:14:53 · 282 阅读 · 0 评论 -
如何生成.aar包和如何在项目中引入aar包?
aar包是Android Studio下打包android工程中src、res、lib后生成的aar文件,aar包导入其他android studio 工程后,其他工程可以方便引用源码和资源文件1.先说怎么生成aar包:在AS中新建一个android项目,然后在默认生成的基础工程上新建一个Module。选中的Module为“Android Library原创 2017-04-20 16:24:21 · 32454 阅读 · 1 评论 -
Camera预览尺寸和获取屏幕宽高。
算法需要将预览大小与手机的分辨率挂钩,才能够在不同分辨率的手机上面预览都不变形。/** * 获取最佳预览大小 * @param parameters 相机参数 * @param screenResolution 屏幕宽高 * @return */private Point getBestCameraResolution(Camera.Parameters parameter转载 2017-04-14 14:43:34 · 6152 阅读 · 0 评论 -
使用MediaRecorder录制音频
手机一般用麦克风硬件录制音频,Android提供MediaRecorder类录制音频。1.创建MediaRecorder对象;2.调用MediaRecorder对象的setAudioSource()方法设置声音来源,一般传入MediaRecorder.AudioSource.MIC参数指定录制来自麦克风的声音;3.调用MediaRecorder对象的setOutputFormat()设原创 2017-04-10 17:51:54 · 578 阅读 · 0 评论 -
使用SurfaceView和MediaPlayer播放视频
使用MediaPlayer播放视频的步骤:1.创建MediaPlayer对象,并让MediaPlayer加载指定的视频文件;2.在界面布局文件定义Surfaceview组件或者在程序中创建Surfaceview组件,并为Surfaceview的SurfaceHolder添加Callback监听器;3.调用MediaPlayer对象的setDisplay(SurfaceHolder sh原创 2017-04-10 16:09:24 · 726 阅读 · 0 评论 -
常用的正则表达式
收集常用的正则表达式,欢迎补充。1.匹配IP地址function isIP(value){ return /^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})$/i.test(value);}2.匹配URLfunction isU转载 2015-10-26 17:04:15 · 484 阅读 · 0 评论 -
Android 使用 ANT 打包 Android 应用 .
大家好,今天来分享一下如何使用ANT打包Android应用。通常我们习惯用eclipse来开发Android程序,它会自动帮我们打包当前的应用程序。如果在Navigator视图下,我们可以看到以下几个文件:在上图中,com包放置的是我们的class文件,classes.dex是class文件经过转换后的可以在dalvik上跑的精简类文件,resources.ap_是经过转载 2015-10-23 14:56:32 · 544 阅读 · 0 评论 -
Android独特的架构:HAL与Dalvik虚拟机
在 从Android架构图看开发所需的知识点里,我们贴了Android的架构图,很笼统的一个图,安卓细节方面和传统Linux差别很大,我们这里还要再展开说明。Android的底层使用的是Linux内核。在用户空间中,每个应用也会运行为一个进程。我们现在来看看安卓的架构。HAL安卓驱动硬件的方式与Linux不尽相同。传统Linux的驱动完全存活于内核空间。而Android则在转载 2015-03-10 09:44:39 · 1689 阅读 · 0 评论 -
Android开发人员需要具备的知识(很全)!
根据近期面试Android高工的经历与自己越来越广的经历再次对答案进行补充(由于答案范围其实可以扯的很远,以下答案就只涉及到技术知识点层面)。首先上一张 Android 架构图(面试有很大几率被问,不熟悉的趁这机会赶紧补补~):从Android架构得出我们必须要掌握的知识点:Linux知识。Android是基于Linux内核的,编译Android源码也必须在Li转载 2015-03-10 09:20:52 · 6490 阅读 · 0 评论 -
android AlarmManager详解,Alarm的设定和取消。
设定alarm的话,大概需要用到如下几步:1.创建一个Intent2.创建一个PendingIntent3.得到ALARM_SERVICE的AlarmManager4.使用AlarmManager的set api,假如是取消,那就使用cancel android自带的AP对于Alarm的管理是很巧妙的,例如Calendar,它基本上只会给系统设定一个转载 2015-03-27 10:43:32 · 16406 阅读 · 3 评论 -
File中createNewFile()和createTempFile()区别
1、createTempFile():File sampleDir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() +"/FMRecording");mSampleFile = File.createTempFile("FMRecording", ".m4a", sampleDir);主要的原创 2015-03-26 20:49:15 · 4490 阅读 · 0 评论