![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
HeartyHu
好人!
展开
-
Android Studio 使用夜神模拟器Nox
在Android开发时,需要先打开Android Studio再打开夜神模拟器,如下。。。这是Nox夜神模拟器的启动界面--将模拟器打开开发者模式--便出现了开发者选项--打开USB调试--在cmd进入夜神模拟器安装路径下的bin,输入命令:nox_adb.exe connect 127.0.0.1:62001 . 出现success原创 2015-08-20 18:05:18 · 6724 阅读 · 1 评论 -
关于焦点冲突的坑
解决方案: 在 listView 的 adapter 里convertView.setOnTouchListener(this); 和holder.editText.setOnTouchListener(this);然后重写方法 onTouch 进行焦点选择 @Override public boolean onTouch(View v, MotionEvent event) {原创 2016-12-02 15:53:59 · 495 阅读 · 0 评论 -
关于 Android 获取本地音频的坑2
private void findLocalAudio(Intent data) { Uri uri = data.getData(); String filePath = GetPathFromUri4kitkat.getPath(RecordingActivity.this, uri); MediaScannerConnection.scanFil原创 2016-12-09 11:23:23 · 1561 阅读 · 0 评论 -
关于Android获取本地音频的坑
下面是我以前的做法 private void findLocalAudio(Intent data) { Uri uri = data.getData(); String[] projection = {MediaStore.Audio.Media.DATA}; Cursor myCursor = this.getContentResolver(原创 2016-12-01 13:12:08 · 6681 阅读 · 1 评论 -
# 读 Android 开发艺术探索 &1
关键词:Activity / 生命周期 / 启动模式 / IntentFilter Activity 是界面,除了 Window / Dialog / Toast 我们见到的就只有 Activity 了。 本次梳理主要包括:Activity 生命周期、启动模式、IntentFilter 匹配规则。1. Activity 生命周期 #一. 典型情况下的生命周期:被用户参与的生命周期的改变二原创 2017-02-06 11:25:27 · 532 阅读 · 0 评论 -
# 读 Android 开发艺术探索 &2
关键词:IPC / 多进程 / 序列化 / Binder IPC,Inter-Process Communication 的缩写,含义为进程间通信或者跨进程通信,两个进程之间进行数据交换的过程。说到 IPC 的使用场景,就要提到多进程,当采用了多进程的设计方法,那么应用中就必须妥善处理进程间通信的各种问题。 [ 首先必须知道的几点:]进程:一般是指一个执行单元,在 PC 和移动设备中指一个程序原创 2017-02-06 11:26:52 · 403 阅读 · 0 评论 -
# 读 Android 开发艺术探索 &3
关键词:Binder / 跨进程通信机制 / AIDL /Binder 是系统各个组件的桥梁,是一种极其方便的跨进程通信机制。Android 的四大组件、AMS、PMS 等系统服务都与 Binder 有关系。这篇笔记是看《Android 开发艺术探索》之后,对 Binder 的进一步学习,对 Binder 知识的梳理参考了以下几篇非常优秀的文章(感谢存在那么多大神对知识的无私传播):(1)Weish原创 2017-02-06 11:28:18 · 331 阅读 · 0 评论 -
# 读 Android 开发艺术探索 &4
关键词:IPC 方式 / 共享文件 / ContentProvider / Messenger / Intent + extras / Socket / Bundle本次笔记梳理了所有可以进行跨进程通信的常见方式,包括使用 Bundle、使用文件共享、使用 Messenger、使用 AIDL、使用 ContentProvider、使用 Socket。1. 使用 Bundle #是一种最简单的进程间原创 2017-02-06 11:29:00 · 335 阅读 · 0 评论 -
# 读 Android 开发艺术探索 &5
关键词:Binder 连接池 / BinderPool / AIDL / Service /AIDL 是最常用的进程间通信方式,先温故一下它的大致流程:(1)创建一个 Service 和一个 AIDL 接口;(2)创建一个类,继承于 AIDL 接口中的 Stub 类,并实现 Stub 中的抽象方法;(3)在 Service 中的 onBind 方法中返回这个类的对象;(4)客户端绑定服务端的 Ser原创 2017-02-06 11:29:39 · 341 阅读 · 0 评论 -
# 读 Android 开发艺术探索 &6
关键词:View / 滑动 / 动画 / 手势 / 坐标 / measue / layout / draw1. View 的事件体系 #(1)关于 View 需要知道的几点View 是 Android 中所有控件的基类,ViewGroup 也是继承了 View;View 是一种界面层的控件的一种抽象,代表了一个控件;View 的位置由四个顶点决定,它们的坐标都是相对于父容器来说,是一种相对坐标原创 2017-02-06 11:30:28 · 356 阅读 · 0 评论 -
# 读 Android 开发艺术探索 &7
关键词:自定义 View自定义 View 是一个综合的技术体系,涉及 View 的层次结构、事件分发机制、View 的工作原理等技术细节。面对陌生的自定义 View 的时候,运用以下思想去快速的解决问题:首先掌握了基本功比如 View 的弹性滑动、滑动冲突、绘制原理等;熟练掌握了基本功之后,在面对新的自定义 View 的时候,要能对其进行分类并选择合适的实现思路;平时多积累一些自定义 View 相关原创 2017-02-06 11:58:13 · 291 阅读 · 0 评论 -
# 读 Android 开发艺术探索 &8
关键词:RemoteViews / 通知栏 / 桌面小部件 /RemoteViews 是一种远程 View,是一种远程服务,实际上和远程 Service 是一样的,RemoteViews 是一个 View 结构,可以在其它进程中显示,提供了一组操作用于跨进程更新它的界面。RemoteViews 在 Android 中的使用场景有两种:通知栏 和 桌面小部件。通知栏和桌面小部件的开发过程都需要用到 R原创 2017-02-06 11:59:12 · 445 阅读 · 0 评论 -
# 读 Android 开发艺术探索 &9
关键词:View 动画 / 帧动画 / 属性动画Android 动画分为三种:View 动画、帧动画和属性动画。本次笔记初步梳理了跟 Android 动画相关的基本知识点,便于今后温故知新,查漏补缺。 1. View 动画 #需要知道的几点:View 动画的作用对象是 View;只支持 4 种类型:平移(Translate)TranslateAnimation、旋转(Rotate)Rotate原创 2017-02-06 11:59:51 · 376 阅读 · 0 评论 -
# 读 Android 开发艺术探索 &10
关键词:四大组件 / Activity / Service / BroadcastReceiver / ContentProvider本次笔记主要梳理了四大组件的进一步认识,为今后更进一步了解四大组件的工作原理做个准备,温故知新、查漏补缺。Android 四大组件中除了 BroadcastReceiver 以外,其它三种组件都必须只在 AndroidManifest 中注册,而 BroadcastR原创 2017-02-06 12:00:21 · 378 阅读 · 0 评论 -
# 读 Android 开发艺术探索 &11
关键词:消息机制 / Handler本次笔记梳理了和 Android 的消息机制的知识点。Handler 是 Android 消息机制的上层接口,通过它可以轻松将一个任务切换到 Handler 所在的线程中去执行。Android 的消息机制主要是指 Handler 的运行机制,Handler 的运行需要底层的 MessageQueue 和 Looper 的支撑。 有时候需要在子线程中进行耗时的原创 2017-02-06 12:01:32 · 358 阅读 · 0 评论 -
# 读 Android 开发艺术探索 &12
关键词:线程 / 线程池 / AsyncTask / IntentService / Handler本次笔记主要梳理了 Android 的线程与线程池的相关知识点。从用途上来说,线程分为 主线程 和 子线程,主线程处理和界面相关的事情,子线程则往往用于处理执行耗时的操作。除了 Thread 本身之外,扮演线程角色的还有很多,比如:AsyncTask、IntentService、HandlerThre原创 2017-02-06 12:02:09 · 434 阅读 · 0 评论 -
# 读 Android 开发艺术探索 &13
关键词:Bitmap / Cache / 图片加载 / 采样率 / ImageLoader /本次笔记梳理的内容是 Bitmap 的加载和 Cache。加载 Bitmap 需要注意的问题有防止内存溢出、如何高效地加载 Bitmap 等等,对于常用的缓存策略,实际开发中,我们需要用 Bitmap 做缓存,通过缓存我们不需要每次都从网络上请求图片或者从存储设备中加载图片,极大提高图片的加载效率以及用户体原创 2017-02-06 12:02:41 · 331 阅读 · 0 评论 -
# 对 Android 应用被强杀重回应用的优化处理(重走应用流程)
关键词:强杀 / home 键 / static 导致的 NullPointerException / BaseActivity背景:Android 编程中我们经常会使用到 static 变量,static 变量属于类本身,所有实例调用的静态变量的值都是一样的,如果在某一个类里改变了一个静态变量的值,其它所有的实例在调用这个值的时候也全都会发生了变化。static 在虚拟机中单独占用内存,在不同的包原创 2017-02-06 13:53:21 · 1646 阅读 · 0 评论 -
EditText 点击即清除 hint
/* 点击即清除 hint */private View.OnFocusChangeListener mOnFocusChangeClearHintListener = new View.OnFocusChangeListener() { @Override public void onFocusChange(View view, boolean hasFocus)原创 2016-11-09 10:46:48 · 1830 阅读 · 0 评论 -
了解Firebase
了解Firebase #2014 年 Google 首次发布了 Firebase 这一后端服务,通过 Firebase 用户可以在 iOS、Android 和 Web 上同步程序的数据。在这之后,Firebase 的开发者达到了45万人,Google 希望能够在强大的用户体验基础上可以扩展到应用开发的其他领域,于是在 18 个月后的 2016 Google I/O 大会上有了新一代 Firebase转载 2016-09-22 17:32:20 · 2853 阅读 · 0 评论 -
倒计时
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_pare原创 2016-07-29 17:37:01 · 417 阅读 · 0 评论 -
Android启动活动的最佳写法
写在前面之前,我启动活动的方法是首先通过Intent构建出当前的“意图”,然后调用startActivity()或startActivityForResult()方法将活动启动起来,如果有数据需要从一个活动传递到另一个活动,也是借助Intent来完成。但是,有时候与别人一起开发的时候会有对接问题的出现,这时候自己去阅读SecondActivity中的代码,或者询问负责编写SecondActiv原创 2016-03-04 09:24:31 · 1125 阅读 · 0 评论 -
反编译SpeedPro.apk的结果报告 — 评估混淆程度
《反编译SpeedPro.apk的结果报告 — 评估混淆程度》操作时间:2016-2-19 使用工具:ShowJava/JaDX0.6.1报告版本:Version11.反编译结果概述图 1 SpeedPro反编译结果目录结构 如图1所示,主要关注四个地方:首先java文件夹是项目源码java文件,包括项目所引用的SDK源文件和项目本身的各种类文件源码原创 2016-03-20 01:30:24 · 1473 阅读 · 0 评论 -
解决webview调用 goBack() 返回上一页自动刷新闪白的情况
问题是:重写了onKeyDown()方法使其goBack(),但是遇到的问题是,每次进入webview再次返回原始页面的时候,中间会有一个闪白的出现。效果如下:试了好多网上的方法,发现都是扯淡。后来意识到,webView 有缓存啊,存在着//设置缓存模式webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT原创 2016-03-22 18:02:43 · 10812 阅读 · 0 评论 -
公共技术点之面向对象六大原则
只转载高质量的技文From:https://github.com/simple-android-framework-exchange/android_design_patterns_analysis/blob/master/oop-principles/oop-principles.md概述在工作初期,我们可能会经常会有这样的感觉,自己的代码接口设计混乱、代码耦合较为严重、一个类的代码转载 2016-03-23 01:18:24 · 679 阅读 · 0 评论 -
Android设计模式源码解析之单例模式
From https://github.com/simple-android-framework-exchange/android_design_patterns_analysis/tree/master/singleton/mr.simple模式介绍1 模式的定义2 模式的使用场景UML类图1 角色介绍模式的简单实现1 介绍2 实现源码3 其他实现===转载 2016-03-23 01:44:11 · 481 阅读 · 0 评论 -
Android 开发Tips 之 Bmob操作
/* 在项目中Bmob云数据库进行的数据操作*//* top bar 清空按钮的事件处理*/ public void deleteAllResult(View v) { /* | */ AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMes原创 2016-03-25 18:20:00 · 848 阅读 · 0 评论 -
Android 布局最佳实践 之 使用自己的 ToolBar
Android 布局最佳实践 之 使用自己的 ToolBar源代码 传送门效果图:下面是 MainActivity.javapackage com.nicerdata.mytoolbar;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;i原创 2016-04-26 16:55:42 · 683 阅读 · 0 评论 -
做移动视频直播应用的思路
做移动视频直播应用的思路 学习自前辈@卢_俊 微博 http://weibo.com/lujunblog# 思路步骤参考调用 Camera API 实现取前置/后置摄像头的画面并提供预览和控制功能;调用 MediaCodec API 对 Camera 预览的 YUY 图像进行硬编码,将编码后的文件存到本地(自己定义一些帧头格式,后面自己来解析,也可以考虑存为 MP4 或者其他格式);读取原创 2016-04-29 00:25:01 · 1539 阅读 · 0 评论 -
如何上传应用到 Google Play
传送门原创 2016-05-01 11:13:35 · 770 阅读 · 0 评论 -
Android 开发常见异常分类
ANR(Application Not Responding) 发生该异常时,Android 设备通常会弹出“程序XXX无响应,是否等待”的提示框。 常见发生原因: 1)应用主线程卡住,对其他请求响应超时; 2)死锁; 3)系统反应迟钝; 4)CPU 负载过重。Java runtime error 发生该异常时,Android 设备通常会弹出“程序 XXX 意外终止,是否立即关闭”的原创 2016-05-02 17:41:56 · 1623 阅读 · 0 评论 -
关于做好一个项目
# 除了写好代码我们还应该注意做好什么1 . 分析需求(我们少有创新,大多算更新,所以所有的需求都有原型,以及延伸的雏形,找到它,试图理解它背后的逻辑,然后再考虑技术实现)2 . 设计原型(来自于经验的积累,流程图会帮你从混乱的需求中清醒,即使是草图)3 . 团队协作(了解每个人擅长做什么,出现状况的时候,作为旁观者,你要做的是帮他理清思路,what when why ho原创 2016-05-01 15:20:48 · 542 阅读 · 0 评论 -
EditText 对手机号码的处理
@Override protected void onCreate(Bundle arg0) { super.onCreate(arg0); hideRechargeBar(); Intent intent = getIntent(); String state = intent.getStringExtra("state");原创 2016-07-23 15:54:17 · 1676 阅读 · 0 评论 -
整理 Android EditText 的相关属性的使用
1. EditText 输入的文字为密码的形式android:password = "true"editText.setTransformationMethod(PasswordTransformMethod.getInstance());2. EditText 输入的文字为电话号码android:phoneNumber = “true” 3. EditText 字数限制的设置android:max原创 2016-07-25 13:56:54 · 704 阅读 · 0 评论 -
[Utils工具类整理]ActivityHelper
import java.util.ArrayList;import android.app.Activity;public class ActivityHelper { private static ArrayList<Activity> mActivities = new ArrayList<Activity>(); public static void addActivity(Act原创 2016-08-04 17:08:30 · 1007 阅读 · 0 评论 -
[Utils工具整理] Toast 显示帮助类
import android.app.Activity;import android.content.Context;import android.widget.Toast;/** * Toast 显示帮助类 */public class ToastUtils { public static void show(Context context, String showText, in原创 2016-08-01 20:59:31 · 659 阅读 · 0 评论 -
选择ListView的某个item显示选中状态
xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_par原创 2016-08-05 10:27:48 · 3623 阅读 · 0 评论 -
# 对视频播放器的研究
关键词:ijkplayer / 播放器 / 视频技术本次笔记主要梳理了几家主流视频播放器的调研和对视频技术的初步分析。1. 对几家视频播放器的调研对比 #(1)ijkplayer - 支持 Android 和 iOS 平台; - API 易于集成; - 编译配置可裁剪,方便控制安装包大小; - 支持硬件加速解码; - 移除了 ffmpeg 视频内核中不常用的特性以减小体积; - 使用各种原创 2017-02-06 13:56:27 · 2500 阅读 · 0 评论