android
文章平均质量分 89
Rain_Gu
好记性不如烂笔记
展开
-
OTA a/b分区理解
A/B系统升级,顾名思义是有两套系统,一套系统分区,另一套备份分区。这两套系统出厂时一样,此后可能不一样。一个新版本,另一个旧版本,旧版本升级至新版本,不断更新切换原创 2022-07-13 17:34:48 · 6782 阅读 · 1 评论 -
使用引导加载程序 fastboot flashing unlock
解锁和 Trusty建议所有 Google 品牌设备都应设为可解锁,以便可以重新刷写上述所有分区。可以使用 fastboot flashing unlock 设置此解锁模式,设置后,此模式在系统重新启动后应保留。除非 fastboot flashing get_unlock_ability 为“1”,否则设备应拒绝 fastboot flashing unlock 命令。如果 get_unlock_ability 为“0”,则用户需要启动进入主屏幕,然后依次转到“设置”>“系统”> 开发原创 2021-12-06 19:23:07 · 7932 阅读 · 0 评论 -
Git如何合并多条commit
目标:将多个commit合并,只保留一次提交历史步骤: 首先使用git log查看一下提交历史 如上存在两条commit,那我想1 2 合并成一条, 使用git rebase -i HEAD~2 命令:git rebase -i HEAD~n 注: n等于合并的条数,此处我想合并2条该命令执行后,会弹出一个编辑窗口,2次提交的commit倒序排列,最上面的...原创 2020-03-27 17:04:39 · 3477 阅读 · 0 评论 -
自定义布局之TypedArray类
一些项目需求,需要自定义属性,也就是在values 的文件夹下面新建 attrs.xml 文件。会配置一些属性。使用属性时就遇到了 TypedArray 类的使用。以前没有使用过,也就没深入研究,今天遇到了,就百度了一下。也算有所了解。首先创建 attrs.xml文件。1234567891011"1.0"enc原创 2016-10-20 10:20:00 · 421 阅读 · 0 评论 -
Android之service详解
一.服务的生命周期:1.采用start的方式开启服务生命周期如下: onCreate()-->oonStartCommand(){onStart()过时了}---> onDestory()注:如果服务已经开启,不会重复的执行onCreate(), 而是会调用onStart()和 onStartCommand();服务停止的时候 onDestory().服务只会被停止一次。原创 2016-06-11 16:42:38 · 392 阅读 · 2 评论 -
Android Studio cannot launch avd in emulator解决方案
Android Studio作为谷歌的亲儿子在整体开发上给程序猿带了更好的体验(如果无视天朝的高墙),但同时也存在一些问题,下面是在环境搭配中遇到的官方虚拟机无法调出的问题:cannot launch avd in emulator解决方案:进入SDK manager下载对应的镜象文件,通常通过下载以下两个文件解决(CPU为Intel原创 2016-12-06 14:53:09 · 3547 阅读 · 1 评论 -
了解 Android N
2016年5月19日,谷歌在美国加州的山景城举办了 Google I/O 开发者大会中发布。2016年6月,Android N正式命名为“牛轧糖” 本届I/O开发者大会上,Google重点介绍了Android系统三个维度:分别是性能、安全和生产力。其中性能主要新增了Vulkan API与JIT编译器(前者优化图形性能、或者加快软件安装速度);安全性包括新的数据加密方式、恶意网站识别、系统的实时原创 2016-12-08 10:53:17 · 1579 阅读 · 0 评论 -
Android 自定义布局之组合部件
一 .组合布局1.继承你要重写的类。在里面添加,你需要添加你想要的方法。(通过构造方法的反复调用)public class Radiopreference extends CheckBoxPreference { private String mRadioGroup; public Radiopreference(Context context) {原创 2017-02-15 14:29:45 · 545 阅读 · 0 评论 -
Android 之自定义布局(继承控件)
就是继承已有的控件,创建新控件,保留继承的父控件的特性,并且还可以引入新特性。下面就以支持横向滑动删除列表项的自定义ListView的实现来介绍。1、创建删除按钮布局delete_btn.xml,这个布局是在横向滑动列表项后显示的:<Button xmlns:android="http://schemas.android.com/apk/res/android" android:原创 2017-05-17 18:13:32 · 666 阅读 · 0 评论 -
WindowManager悬浮框1
最近在做一个项目的过程中,客户提出要一个能悬浮于所有应用的界面。下图右侧这个界面就是需要实现的悬浮于所有应用之上的视图。下面就介绍一下如何通过WindowManager来实现这个效果。通过WindowManager的addView()方法,并设置WindowManager.LayoutParams的相关属性,就可以往WindowManager中加入所需要的View,而根据Win原创 2016-10-24 10:08:07 · 333 阅读 · 0 评论 -
Android获取短信验证码
Android开发中关于短息验证码的设计层出不穷,越来越多的应用为了更好的提高软件的安全性,开始使用通过服务器向用户发送验证码的方式,来保护用户个人信息的安全性。无论是用户注册时的信息验证还是当用户发出找回密码请求时的短信验证,他们的工作原理大致上是一致的,因为项目的需要研究了一下关于这方面的知识,本篇我将带领大家一起实现这一当下流行的设计方案。 众所周知,短信验证需要服务器端生成一个验证码原创 2016-09-27 13:27:39 · 427 阅读 · 0 评论 -
Android View的绘制流程 (http://www.jianshu.com/p/5a71014e7b1b)
View的绘制和事件处理是两个重要的主题,上一篇《图解 Android事件分发机制》已经把事件的分发机制讲得比较详细了,这一篇是针对View的绘制,View的绘制如果你有所了解,基本分为measure、layout、draw 过程,其中比较难理解就是measure过程,所以本篇文章大幅笔地分析measure过程,相对讲得比较详细,文章也比较长,如果你对View的绘制还不是很懂,对measure过程原创 2016-09-26 14:43:02 · 4482 阅读 · 0 评论 -
Android之Activity的四种启动模式
四种启动模式:1. standard 默认标准的启动模式, 每次startActivity都是创建一个新的activity的实例。 适用于绝大大数情况2. singleTop 单一顶部,如果要开启的activity在任务栈的顶部已经存在,就不会创建新的实例, 而是调用 onNewInten原创 2016-06-30 11:17:45 · 508 阅读 · 2 评论 -
公司一个完整的android项目流程大致如下
不管做什么项目都是这几个流程:(个人见解 如有不对,希望大家多多给予修正)产品调研-需求分析-系统设计-编码开发-测试-运营维护 这是软件工程开发一贯的开发方式。1.产品调研2.需求分析3.系统设计如果以上三个步骤(特别是第三步)设计的好了,接下来的代码编写就相对比较简单了。公司拿到一个项目,首先会开产品需求分析会,哪些功能是可行的是哪些可以完成的,哪些功能是不符合实际的。然原创 2016-01-26 10:25:04 · 6533 阅读 · 0 评论 -
Android开发之获取系统所有进程信息。
Android开发之获取系统所有进程信息。 最近在做一个app,有一个进程管理模块用于管理系统中正在运行的进程,并且可以关闭进程进行加速手机的功能,基本把它实现了出来。界面的效果都是自己写的,虽然有BUG,但是基本上能满足需求,后期我会改进BUG。好了,来看看效果:1.获取系统的可用内存和总内存。获取系统内存中应用的信息,需要用到ActivityManager这个类,然而当你转载 2016-09-20 11:24:29 · 2477 阅读 · 2 评论 -
Android Studio导出APK
Android Studio导出APKandroid导出apk(1)Android Studio菜单Build->Generate Signed APK (2)弹出窗口 (3)创建密钥库及密钥,创建后会自动选择刚创建的密钥库和密钥(已拥有密钥库跳过) 点击“Create new...”按钮创建密钥库 Key sto原创 2016-08-15 09:52:54 · 406 阅读 · 0 评论 -
Android动画原理分析
最近在Android上做了一些动画效果,网上查了一些资料,有各种各样的使用方式,于是乘热打铁,想具体分析一下动画是如何实现的,Animation, Animator都有哪些区别等等。首先说Animation(android.view.animation.Animation)对象。无论是用纯java代码构建Animation对象,还是通过xml文件定义Animation,其实最终的结果都是原创 2016-09-18 16:09:28 · 615 阅读 · 1 评论 -
android5.1+获取当前运行的app(Android5.1-也支持)
判断App位于前台或者后台的6种方法: https://github.com/wenmingvs/AndroidProcess做一个项目时,需要获取当前正在显示的应用app(正在运行的应用进程等),android5.0-之前可以使用getRunningTask获取,5.0这个方法不可用了,但是提供了getRunningAppProcess也可以获得。但是自从android5.1+以后,Go转载 2016-08-26 10:56:19 · 1342 阅读 · 0 评论 -
Kotlin学习!!!此帖有点火
为什么使用Kotlin项目一期在收尾了终于有时间折腾了,一个多月以来Kotlin从入门到现在,坚持用来开发的切身感受。因为语法与Java的区别挺大的一开始很想放弃,如果不是因为项目在使用,想必很少人会尝试这样一门小众语言,但是习惯后会发现这些年究竟浪费多少时间在写无用的Java代码了,Kotlin在兼容Java的基础上还能大大提升开发效率。Kotlin有许多特性但对于开发来说,快速适应和学习更原创 2017-05-18 17:24:09 · 4271 阅读 · 0 评论 -
Android自定义控件三部曲文章索引
相关文章:《Android自定义控件三部曲文章索引》: http://blog.csdn.net/harvic880925/article/details/50995268经过前几篇,我们基本把paint和canvas的基本用法就看完了,今天我们来个大汇总,列举一个paint的所有函数,然后一个一个的过。经过这几篇,你将能学会paint中所有处理函数的用法。一、基本用法转载 2017-05-19 17:08:31 · 468 阅读 · 0 评论 -
MTK平台系统稳定性分析
1:简介 2:怎么抓取和分析log 3:怎么确定问题点 简介 系统稳定性目前主要是解决系统死机重启。 分为两部分:Android /kernel Kernel 分析需要的文件和工具: Mtklog, vmlinux ,gat工具,解析vmlinux的脚本。Vmlinux路径:alps\out\target\product\k55v1_64_op01_pre\...原创 2019-01-29 16:17:11 · 743 阅读 · 1 评论 -
AndroidStudio与github的相关知识
1、在AndroidStudio中文件及文件夹的忽略根据.gitignore文件2、忽略文件和SVN忽略完全一样。 Android开发]Androidstudio使用SVN需要忽略的文件 Androidstudio使用SVN需要忽略的文件 Android Studio创建的Android项目一般需要忽略 1、.idea文件夹 2、.gradle文件夹 ...原创 2016-09-26 11:38:48 · 506 阅读 · 0 评论 -
Android Studio解决导入项目非常慢的问题
Android Studio解决导入项目非常慢的问题 Android Studio比Eclipse ADT有巨大的优势。Android Studio原生支持使用Gradle来构建项目,使用动态语言Groovy定义项目构建的过程,避免了build.xml文件繁琐的定义。然而使用的时候,却有着巨大的缺陷。由于Android Studio在升级的时候,可能会伴随着Gradle版本的升级,...原创 2016-09-22 10:02:40 · 438 阅读 · 0 评论 -
关于android ANR 问题的分析
ANR (Application Not Responding) ANR定义:在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。 默认情况下,在android中Activity的最长执行时间是5秒,BroadcastReceiver的最长...原创 2018-10-29 11:53:34 · 863 阅读 · 0 评论 -
Android框架之EventBus的使用
EventBus是由greenrobot 组织贡献的一个Android事件发布/订阅轻量级框架。EventBus是一个Android端优化的publish/subscribe消息总线,简化了应用程序内各组件间、组件与后台线程间的通信。比如请求网络,等网络返回时通过Handler或Broadcast通知UI,两个Fragment之间需要通过Listener通信,这些需求都可以通过EventBus...原创 2018-10-09 15:08:19 · 197 阅读 · 0 评论 -
只需要五个步骤,教你实现Android组件化
所谓组件化 可以理解我Android项目是一个机器人,那么胳膊,腿,头就是组件。项目App加是一个个组件组成的。当然给个组件也是具有生命力的也是可以单独运行的。这里我们直接进去主题。 Demo 下载:https://download.csdn.net/download/gjy211/10594060实践之前你需要了解的基本知识:组件化项目,通过gradle脚本,实现modu...原创 2018-08-09 18:56:30 · 1121 阅读 · 0 评论 -
Win7 x64 Eclipse无法识别手机 / adb interface有黄色感叹号,无法识别
手机连上电脑后,windows可以识别,但AndroidStudio的DDMS中却无法识别,什么都没有:然后打开设备管理器查看,发现windows能正常识别设备(HUAWEI C8817E),而ADB Interface(有的机器可能显示Android ADB什么的)却显示有黄色感叹号,是驱动程序没有正常安装:那怎样正确安装ADB Interface的驱动程序呢?折腾了一个原创 2017-08-04 09:45:45 · 554 阅读 · 0 评论 -
常用的adb 命令
4、常用的ADB命令 a) adb install 这个命令将指定的apk文件安装到设备上 b) adb uninstall adb uninstall -k 如果加 -k 参数,为卸载软件但是保留配置和缓存文件. c)adb shell 这个命令将登录设备的shell原创 2017-08-02 10:37:25 · 601 阅读 · 0 评论 -
Android 线程池
说到线程,我想大家都不陌生,因为在开发时候或多或少都会用到线程,而通常创建线程有两种方式:1、继承Thread类2、实现Runnable接口虽说这两种方式都可以创建出一个线程,不过它们之间还是有一点区别的,主要区别在于在多线程访问同一资源的情况下,用Runnable接口创建的线程可以处理同一资源,而用Thread类创建的线程则各自独立处理,各自拥有自己的资源。所以,在Jav原创 2017-06-22 17:25:32 · 423 阅读 · 0 评论 -
android系统分享功能,将自己的APK加入可分分享的应用列表
android系统分享功能第一步:在Manifest.xml进行配置,比普通的activity中多增加一个Intent过滤器 <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/原创 2017-05-22 14:45:41 · 19508 阅读 · 6 评论 -
Android常用的工具类
常用工具类总结DownloadUtil.javaimport android.app.DownloadManager;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.database.Cursor;原创 2017-06-01 11:17:11 · 635 阅读 · 1 评论 -
Android—将Bitmap图片保存到SD卡目录下或者指定目录
直接上代码就不废话啦一:保存到SD卡下 File file = new File(Environment.getExternalStorageDirectory(), System.currentTimeMillis()+".jpg"); try { out = new FileOutputStream(file); btImage.compress(Bitma原创 2016-03-13 00:17:48 · 32796 阅读 · 1 评论 -
Android常用工具方法
/* 1. * 从流中解析新闻集合 * 使用pull解析器解析xml数据*/ private static List getNewListFromInputStream(InputStream is) throws Exception { XmlPullParser parser = Xml.newPullParser(); parser.setInput(is, "utf-8原创 2016-03-18 15:01:11 · 314 阅读 · 0 评论 -
Android的多线程
今天来总结一下Android的多线程,分别介绍一下四种方法。『原理都是:子线程发消息到主线程进行更新UI』 1.Activity.runOnUiThread(Runnable) 2.View.post(Runnable),View.postDelay(Runnable,long) 3.Handler 4.AsyncTask----------------原创 2017-06-01 09:43:33 · 496 阅读 · 3 评论 -
OKHttp总结
一、OkHttp介绍OkHttp是一个优秀的网络请求框架,可能一说到网络请求框架,可能很多人都会想到 volley , volley 是一个Google提供的网络请求框架,我的博客里也有一篇专门介绍 volley 的博客,博客地址在此 Android网络请求 ------ Volley的使用 那么既然Google提供了网络请求的框架,我们为什么还要使用 OkHttp 呢,原来是 volley转载 2017-06-05 11:27:23 · 441 阅读 · 0 评论 -
Android之三种实现定时器的方法
方法一:Handler+Threadpackage com.xunfang.handerDemo; import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.widget.TextView;原创 2016-09-05 18:01:55 · 532 阅读 · 0 评论 -
pendingIntent详解
pendingIntent字面意义:等待的,未决定的Intent。 pendingIntent对象,使用方法类的静态方法 : getActivity(Context, int, Intent, int)------->跳转到一个activity组件、 getBroadcast(Context, int, Intent, int)------>打开一个广播组件原创 2016-08-12 17:29:18 · 615 阅读 · 0 评论 -
java Thread 线程的.Join()方法
为什么要用join()方法:主线程生成并起动了子线程,而子线程里要进行大量的耗时的运算(这里可以借鉴下线程的作用),当主线程处理完其他的事务后,需要用到子线程的处理结果,这个时候就要用到join();方法了。join方法的作用:解释一下,是主线程等待子线程的终止。也就是在子线程调用了join()方法后面的代码,只有等到子线程结束了主线程才能执行。(Waits for this thre原创 2016-08-12 15:22:28 · 452 阅读 · 0 评论 -
AndroidStudio初体验
Android Studio之初体验 ---- 很好很强大目录(?)[+]一介绍二使用-创建项目三从eclipse导出项目到Android Studio四安装genymotion插件五使用第三方类库六删除一个项目七快捷键汇总转载请注明出处:http://blog.csdn.net/crazy1235/article/details/417转载 2016-02-27 19:58:37 · 1239 阅读 · 0 评论 -
android之popupwindow点击空白消失
查了查 大部分有两个方法方法1:protected void showPopupWindow() { //Context mContext = HahItemActivity.this; LayoutInflater mLayoutInflater = (LayoutInflater)this.getSystemService(LAYOUT_INFLATER_SERVICE原创 2016-03-11 21:06:52 · 4974 阅读 · 0 评论