![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android拓展学习
文章平均质量分 71
zrf1335348191
Those who are crazy to change the World are the person who can change the World
展开
-
Android源码分析之鼠标事件监听(二)
本文是一篇很长~很长~很长~~~的技术笔记如果有什么问题,欢迎指正.Zero 前言前边儿已经说过,要想了解鼠标就要研究三个东西鼠标的挂载/卸载鼠标事件处理,也就是鼠标操作鼠标绘制不论是鼠标挂载/卸载还是鼠标操作,基本上算是对输入事件的一个监听了,属于一类东西但是鼠标绘制,这涉及到surface绘制鼠标,对于我本人,基本上没接触过那么多绘制的东西,一点点尝试分析.鼠标事件本身又包括什...原创 2019-04-16 17:02:47 · 1650 阅读 · 2 评论 -
我所理解的activity四大启动模式
作为一名应届毕业生,每逢面试总要被问到activity的四大启动模式,搜到的这类文章也不少,但都是学术性语言偏多,打算用自己的话来说一说,若有不对的地方欢迎指出activity四大启动模式:1原创 2015-11-23 13:26:28 · 1562 阅读 · 0 评论 -
Android四大组件完全解析(一)---Activity
本文参考\android\android\frameworks\base\core\java\android\app\Activity.java文件中的类注释,以及android/frameworks/base/docs/html/guide/components/activities.jd文件One Activity简介:Activity是一个单独的、可以和用户交互的东西。几乎所有的activit原创 2017-03-30 16:14:48 · 9123 阅读 · 1 评论 -
Android源码开发之添加/删除系统应用
本文参考老罗的系统源代码情景分析中的1.5章节http://0xcc0xcd.com/p/books/978-7-121-18108-5/c15.php想要在源码基础上添加一个应用整体来说只需要两步第一步,添加所需要的模块第二步,在系统的mk文件(一般在device/qcom/***.mk)中添加对应模块先来说说第一步:添加模块模块下有四个文件夹res文件夹:资原创 2017-02-07 10:54:08 · 6613 阅读 · 0 评论 -
通信之线程间通信(上)-handler
多线程的知识改天再总结,先介绍一下多线程之间的通信只有主线程才能去更新UI线程,如果程序中开启了子线程,而又想去更新UI,这时候就要借助Handler将消息传给主线程,进行刷新UI,简单的总结一下handler的用法1,在activity中创建handler,更新UI的操作在此进行:private Handler mHandler = new Handler(){ public v原创 2016-02-22 15:22:44 · 4170 阅读 · 5 评论 -
启动binder学习计划
2017-02-24 启动binder学习计划,预计用时一个月在知乎上看到有人说,想要学习好Android源码,学习会binder是第一步。以前的博客只是基于某个应用进行分析,大概分析过蓝牙模块,设置模块,录音模块以及一小部分的WiFi模块,如果对这些模块感兴趣可以参考我的博客。对于应用的学习方法基本了解所以以后不再打算对某个应用做整体分析,也许会单原创 2017-02-24 09:40:11 · 1084 阅读 · 0 评论 -
通信之进程间通信-AIDL
AIDL定义aidl:英文全称为Android interface definition language,即Android接口定义语言。能够实现两个独立应用程序之间的通信。进行跨进程通信AIDL用法既然是两个进程间的通信,那就必须要创建两个Android应用程序,一个应用程序A借助service用来实现所定义的aidl接口,另一个应用程序B用来绑定A应用程序中所创建的服务,并原创 2016-02-17 17:04:11 · 1341 阅读 · 0 评论 -
按键事件处理
当按键来临时可能会有三种动作:ACTION_DOWN:按键被按下ACTION_UP : 按键被释放ACTION_MULTIPLE : 多次重复的按键事件,可通过getRepeatCount获取次数按键的动作状态可以通过event.getAction()方法来获取。一般只要down和up两种行为。当然按键也有很多标志位,可以通过event.getFlags()方法来获取按原创 2017-01-17 11:11:59 · 2725 阅读 · 1 评论 -
Android6.0源码开发之修改默认音量default及max和min
1,修改默认音量的位置为android/frameworks/base/media/java/android/media/AudioSystem.java public static int[] DEFAULT_STREAM_VOLUME = new int[] { 4, // STREAM_VOICE_CALL 普通通话音量 7, // STREAM_原创 2017-02-08 14:12:58 · 8469 阅读 · 4 评论 -
Android中应用调用系统权限
现在设备的安全性越来越受到重视,随之而来的便是开发中的各种不便,比如有普通权限,运行时权限,系统权限之分。对于运行时权限的添加可以参考Android6.0蓝牙开发中获取附近低功耗蓝牙设备结果权限问题分析而对于系统权限,却没有很好的解决方案,暂时只有一些特定的解决方案。chapter one 系统应用添加系统权限对于可以编译到源码里的apk添加系统权限很简单,原创 2017-03-02 11:24:05 · 5714 阅读 · 1 评论 -
fragment与Activity
写这篇文章 主要解决4个问题,有需要的可以看下1,fragment到底是什么东西,与Activity的关系2,fragment的lifecycle3,fragment之间的切换4,fragment传值到Activity fragment到底是什么东西呢?英文为碎片,片段,通俗讲就是Activity界面的一个片段,组成部分。一个Activity界面可以原创 2015-12-09 14:42:07 · 1722 阅读 · 0 评论 -
Sqlite数据库使用---基础研究
本文由公众号码农修仙儿独家发布,微信搜索fanfan_code目录Sqlite简介Sqlite创建表语句Sqlite增加insert语句Sqlite查询表selectSqlite更新数据update表排序order by查询某段数据limit和offset删除表dropdemo演示SQLite简介SQLite属于轻量级的数据库。用起来也很方便。和文件相比,sqlite...原创 2019-02-26 13:19:20 · 550 阅读 · 2 评论 -
程序媛儿的自我修养
本文由公众号:码农修仙儿独家发布,微信搜索fanfan_code查询更多裁员新闻满天飞,图片我就不贴了滴滴、美团、知乎、京东裁员了阿里、华为、百度暂时不招了(最新消息阿里和百度已经开始招聘了)锤子、ofo资金链断裂了(锤子手机部分已被字节跳动收购)对互联网人来说,这个寒冬尤其冷。明星需要在娱乐圈扬名立万,码农不求在码农圈赫赫有名,但最起码也要能够立足,经受得住本年度的十二级裁员风暴...原创 2019-02-26 13:16:49 · 655 阅读 · 1 评论 -
闲叙蓝牙
本文已授权微信公众号独家发布蓝牙模块共有三大部分组成:Host:主机,L2CAP以及L2CAP以上Controller :控制器,HCI以下HCI:主机控制接口,传输主机host和controller之间的接口,记录了从host到controller的commands命令以及controller到host的响应events每个蓝牙芯片包含唯一的一个host,以及唯一的一...原创 2018-06-29 18:34:10 · 555 阅读 · 0 评论 -
常用adb命令相关总结
1,前期工作首先要保证你能使用adb命令---即正确配置adb相关的环境变量,通过命令窗口输入cmd,运行cmd程序2,adb命令,adb root :root设备,adb remount:挂载设备3,查找文件或文件夹命令首先adb shell,接着busybox find . -name filename ,命令如下图4,将手机中的system原创 2016-06-17 15:29:18 · 1307 阅读 · 1 评论 -
网络协议学习笔记
一直以来,研究蓝牙和wifi时总是只能是对上层很熟悉,但是对底层这些东西一无所知。而真正的研究起来才发现,自己对无线连接中的协议一无所知,这真是一件可怕的事。所以,接下来会给自己一段时间,来完善这方面的东西2017-09-28 启动网络协议学习:目前状态是不清楚要学什么,如何学习,学习目的,一片混乱。希望可以尽快整理出思路。原创 2017-09-28 11:35:44 · 695 阅读 · 0 评论 -
Android7.1.1系统设置默认值大全
1,是否有默认值在寻找一个开关的默认值时,首先要明白一点,该开关是否存在默认值,以及该开关状态是否有状态保存(一般状态存储在settings的db中)。 判断条件: 在reboot(重启)之后开关状态仍旧保存或者是在reset(恢复出厂设置)之后开关状态恢复到默认的,才能找到默认值。 在reboot之后开关状态仍旧保存的,表示状态存储在了db中。 在reset之后开关状态恢复默认的,表示状态原创 2017-07-21 15:13:17 · 10423 阅读 · 8 评论 -
Androidstudio编译c/c++jni方法
本文微信公众号授权fanfan程序媛独家发布转载注明出处: 本文出自fanfan的博客Androidstudio编译jni 开发环境:Androidstudio2.3 开发目的:在Androidstudio上编译c/c++jni并自动生成so库,在java类中引用。 开发过程中遇到的问题很多,但终归是成功了,记录下来用Androidstudio的准备 遇到的问题诸如: 再比如原创 2017-06-29 17:33:40 · 10455 阅读 · 4 评论 -
Android四大组件完全解析(二)---Service
Service简介转载需注明出处,本文出自 fanfan的博客 原文地址为: 原文地址Service两大功能 :当应用程序不与用户交互时,运行一些需要长时间运行的操作为其他应用提供一些功能(提供能够跨进程调用的功能)Service的配置:service需要在所在应用的androidmanifest文件中进行配置:<!-- name是service的包名路径--><!-- permiss原创 2017-05-17 16:17:50 · 14953 阅读 · 0 评论 -
Android中初步自定义view
问题1 ,Paint画笔对象为null的异常 FATAL EXCEPTION: main Process: com.fang.zrf.mycustomview, PID: 12882 java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a原创 2017-01-10 11:15:23 · 1327 阅读 · 0 评论 -
Android中资源各种引用方式?,@,@*等等
本文参考于http://www.cnblogs.com/greatverve/archive/2011/12/27/Android-xml.html,原创 2016-10-12 14:25:27 · 3277 阅读 · 0 评论 -
Android中四大组件以及如何避免anr
一个Android程序有四大基本组件,但只有activity是必须有的1,activity:可视化的交互界面, 为一个Android程序添加一个activity的步骤是 第一步:新建一个类继承自activity, 并且为该activity设置布局文件 public class MyNext extends Activity {原创 2015-12-15 14:25:11 · 2914 阅读 · 1 评论 -
Android中include和Merge节点分析
大家可能都会遇见这样一种情况,开发apk时顶部标题或者底部标题好多activity都相同,如果你每个activity的布局界面都去添加代码,一是会使代码冗余而且无用,二是会让别人觉得你编程水平不行,关键是需要不断地去重复一样的代码在我看来对编程水平的提高没有任何帮助,而且只会更累浪费时间。有一个很重要的衡量编程能力的指标,那就是看你代码的复用性,这是后就要想到include节点,是对UI布局进行复原创 2016-07-01 13:31:20 · 1672 阅读 · 0 评论 -
自定义View之带进度百分比ProgressBar
先上一张我自定义所实现的效果图原创 2016-06-03 17:42:59 · 12004 阅读 · 0 评论 -
Android基础:翻页控件Viewpager的使用方法,viewpager+fragment混合使用
viewpager的 使用分以下4步:1, 在xml文件中添加: <android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="wrap_content" android:layout_height="wr原创 2015-12-10 13:42:41 · 3320 阅读 · 2 评论 -
activity嵌套fragment,fragment内嵌fragment之间传值切换fragment
至于fragment的用法,fragment+viewpager的滑动切换代码请参考博文Android基础:翻页控件Viewpager的使用方法,viewpager+fragment混合使用fragment与Activity当在使用activity嵌套fragment,fragment再嵌套子fragment时,相当于有两层fragment,假设最外层为第一层,其中原创 2016-06-07 16:49:25 · 16362 阅读 · 9 评论 -
SQLite实时增删改查
数据库实现实时刷新原创 2016-01-11 13:15:07 · 3080 阅读 · 0 评论 -
RecyclerView+Checkbox乱序问题
前几天做项目时用到了Android5.0的新特性RecyclerVIew+Checkbox,乱序问题耽误了好久,终于解决了,在此分享一下我做的项目中不仅要避免Checkbox乱序问题,还要将所选中的id的电话号码传递给Activity,说一下大概思路吧、我在adapter中做了如下工作:第一步:用一个Map集合来记录所选中的Checkbox,该Map集合的key值为position原创 2015-11-23 13:32:19 · 7580 阅读 · 4 评论 -
android 5.0新特性,recyclerview的基本用法,及应注意的问题
Android5.0新特性 recyclerview的基本用法1,导入recyclerview的包,有两种方式 (1) 直接在build.gradle文件中添加一句话:dependencies { compile 'com.android.support:recyclerview-v7:23.1.1'} (2)file--project原创 2015-12-07 15:49:45 · 2276 阅读 · 3 评论 -
自定义Toast样式,位置
Android自带的Toast效果实在是不敢恭维,没办法,自己动手丰衣足食,想定义什么样的就定义什么样的,有技术就是任性,接下来自定义Toast步骤:1,新建Toast对象: //获取toast对象 Toast toast = new Toast(mContext);2,利用layoutInflater获取view//利用inflate原创 2015-12-24 17:08:24 · 3599 阅读 · 0 评论 -
git撤销修改各种情况
如何在Git里撤销(几乎)任何操作一、撤销一个已经公开的改变场景:已经执行了gitpush,将修改发送到了github,需要撤销某一个commit。方法:git revert,则改commit的所有改变都会被反转。这是git最安全、最基本的撤销场景。二、修正最后一个commit消息场景:在最后一条commit消息里有一个笔误,已经执行git commit –m’xxx’,但在p转载 2016-08-29 15:20:00 · 6069 阅读 · 1 评论 -
Android中ContentProvider简介
翻看Android源码可以发现,Android一般的代码架构如下:activity,service,receiver----contentProvider------db(file)也就是说创建数据库保存数据,借助contentprovider对数据进行增删该查,上层利用Android组件进行交互。于是想着给自己新写的项目也添加个contentProvider来学习Android谷歌工程师的高原创 2016-07-31 17:53:27 · 979 阅读 · 0 评论 -
自定义PopupWindow实现Spinner
自定义spinner似的popupwindow原创 2016-01-08 13:05:56 · 3662 阅读 · 1 评论 -
Android程序后台开启服务,显示通知栏
一个Android程序仅仅只能前台 运行是远远不够的,我们更希望它在后台运行,既可以接收消息,又不耽误我们去使用别的软件,这就要求我们要实现两点:1,后台运行程序,借助service实现2,通知栏通知消息,系统的notificationservice实现程序后台运行实现service程序 后台运行,首先要解决几个问题:如何判断程序是否后台运行?如何在程序后台运行时去开启服务?原创 2016-01-13 15:45:23 · 14342 阅读 · 1 评论 -
串口通信数据格式那点儿事儿
最近在做通信相关的程序,利用手机去和单片机进行通信,数据格式真是把我给搞蒙了,现在终于清楚了,记录一下 :要清楚一件事儿,计算机只识别ASC码,串口调试助手上可以16进制发送和16进制接收1,比如如果单片机接收到一个ASC码0x31, 一,勾选16进制的话,就会以16进制的格式显示,因为ASC码本身就是16进制,则会显示31; 二,未勾选16进制的话,则会原创 2016-01-14 21:31:25 · 9561 阅读 · 3 评论 -
Animation分类及用法
Android动画的分类,alpha,scale,translate,rotate,以及使用详解原创 2016-01-18 16:08:23 · 1748 阅读 · 0 评论 -
高德地图去掉logo
高德地图logo问题真心感觉拿人的手短,集成一个高德地图,logo还必须得带着,集成文档是这样说的:没办法,只能把他给覆盖掉了,效果还行<TextView android:layout_width="70dp" android:layout_height="20dp" android:background="#ffffffff原创 2016-01-30 11:36:55 · 13317 阅读 · 7 评论 -
Android中单个View的触摸事件分发机制
有时候会遇见点击事件和滑动事件冲突,一直搞不明白,接下来分析一下如果只是点击,而没有对控件进行滑动的话,log日志如下05-17 19:32:17.800 10211-10211/com.fang.zrf.qrcodedemo I/MainActivity: ----onTouch---05-17 19:32:17.800 10211-10211/com.fang.zrf.qrc原创 2016-06-07 11:54:53 · 1256 阅读 · 1 评论 -
Android中ViewStub控件分析及使用
在分析Android6.0源码时碰到以下一个布局 <ListView android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="fill_parent"/> <ViewStub android:id="@+id/原创 2016-07-01 14:16:56 · 3118 阅读 · 0 评论 -
利用Androidstudio开发Java工程图文详解
作为一名安卓开发工作者,有时候希望可以借助简单的Java程序来验证或测试一些代码,目前Androidstudio开发工具越来越火,但是很遗憾在使用了as一年后才会使用利用其开发Java项目,实在惭愧,在此记录一下利用as开发Java工程。其实说起来也很简单,但希望本博文对那些刚入坑的战友们多少有点儿帮助第一步,新建项目肯定是去new,但到底是new project还是new module是原创 2016-07-16 10:38:56 · 22429 阅读 · 4 评论