- 博客(25)
- 收藏
- 关注
原创 时空行者——2019
这个标题取自于汪苏泷的《时空行者》,我很喜欢的一首歌,今天想着给我的年度总结起个什么样高大上的名字好,这四个字就进入了我的脑中。元旦那天去我很好的一个朋友家里了,因此没有做2019年的总结。今天补上了,算是给自己的一个警醒。看看自己2019年都干了哪些蠢事。还记得去年元旦的时候是在我那个朋友家过的,那时候只是每天吃吃喝喝,然后看小说看电视,要说不是应该好好学习以求得更好的发展吗?确实,我明确的...
2020-01-05 20:40:43
193
原创 Android广播机制简析
1. 广播机制简介Android 中的广播主要是用来在不同的组件间传递消息用的。 app 能够接收来自 Android 系统或者其他 app 所发送的广播。也能像其发送系统提供的或者自定义的广播。例如,Android系统启动时就会发送一个开机广播,如果想要在开机是处理一些逻辑,可以监听该广播。应用场景如下:同一个app内部的同一个组件内的消息通信(单个或多个线程);同一个app内部的不同...
2019-06-10 19:07:32
1536
原创 Android Activity
Android 四大组件 —— ActivityActvity是Android中的四大组件之一,平常我们在手机一个用程序上所看的界面就是 Activity 的表现形式。而且 Activity 也是用户唯一能够感知到的组件,每一个UI的界面就是通过 Activity 显示在屏幕上的,平常我们在软件里进行的各种页面的切换很大一部分是不同 Activity 的跳转。我们在日常生活中不可避免的打开很多...
2019-05-16 18:20:14
250
原创 Android Service
Service 概述关于 Service 的介绍,官方文档里面有给详细的说明,它是一个可以再用户看不到的情况下长时间执行某项任务的应用组件。它可以由 Activity 通过调用 startService() 方法来启动,也可以跟 Activity 进行绑定,Activity 也可以通过绑定到 Service 来与其进行交互。一般情况下,Service 会有两种状态:启动状态:Activit...
2019-05-16 18:13:24
257
原创 RecyclerView——添加头部和尾部
ListView中有个addHeaderView方法和addFooterView方法,因此观看了ListView的实现原理之后,发现其实也没那么难,下面我们来看看ListView里面addHeader的流程该方法首先判断传进来的headerView是否在RecyclerView里面的子控件,若不是则抛一个警告,ListView里面有一个mHeaderViewInfos和mFooterViewInf...
2018-04-22 03:26:01
372
原创 RecyclerView(三)——添加分隔线
RecyclerView中有一个默认的DividerItemDecoration,用于给RecyclerView添加分割线,实现方法如下recyclerView.addItemDecoration(new DividerItemDecoration(MainActivity.this));//setItemDecoration()方法用于为RecyclerView子项的一些装饰(我个人的理解)然后...
2018-04-16 03:41:09
4605
原创 Material Design——RecyclerView
虽然RecyclerView要比ListView功能要强大一点,但是我很想问,为何RecyclerView没有设置子项监听事件的方法,使用RecyclerView还要自己编写设置监听的方法,还是挺麻烦的今天我实现了一下为RecyclerView设置监听,代码如下package com.example.lsn2_materialdesign_recyclerview;import android...
2018-04-08 00:30:30
317
5
原创 Material Design——RecyclerView(二)
上一篇文章讲了RecyclerView的各种布局形式,这次实现一下给RecyclerView的子项定义高度(其实也是笔记,听老师讲了然后自己实现,加深印象)。MainActivity.javapackage com.example.lsn2_materialdesign_recyclerview;import android.support.v7.app.AppCompatActivity;...
2018-04-07 19:32:00
200
原创 Material Design——RecyclerView
package com.example.lsn2_materialdesign_recyclerview;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.support.v7.widget.GridLayoutManager;import android.sup...
2018-04-06 10:42:32
212
1
原创 Material Design的一些常用控件
废话不多说直接先贴代码package com.example.lsn2_materialdesign_theme_style;import android.content.DialogInterface;import android.graphics.Color;import android.support.v4.widget.SwipeRefreshLayout;import andr...
2018-04-05 15:51:47
911
2
原创 Material Design学习笔记一
一、关于Material Design从Android5.0开始引入的,是一种全新的设计语言(翻译为“原材料设计”),其实是谷歌提倡的一种设计风格、理念、原则。拟物设计和扁平化设计一种结合体验。二、MD的使用及开发 谷歌开放以及收集了一些最新的开源的项目(很多是自己开发的),汇集到最新的support兼容支持包以及最新的5.X API里面。 (preference:设置页面,可以通过配...
2018-03-19 23:15:35
253
原创 关于2018年的计划
想了很久,不知道该怎么以正确的姿势开是我第一篇正儿八经的博客,于是就打算的自己2018年的计划贴上来算了,2018我想干的事情:1、继续学习java,想想在学校时懒懒散散的学到了一半,还是要继续学完,现在对于半途而废我是无法忍的2、学习android,把郭神的第一行代码看完,然后自己写一个练手的APP3、每天看几篇技术的文章,不断充实自己(微信公众号真是个强大的东西)4、了解区块链
2018-01-22 09:05:06
262
原创 Init进程笔记
init.cpp//init进程启动的起点int main(int argc, char** argv) { ... umask(0);//设置文件属性0777 add_environment("PATH", _PATH_DEFPATH); bool is_first_stage = (argc == 1) || (strcmp(argv[1], "
2017-10-20 14:17:06
283
原创 第一行代码笔记 Activity
Activity(活动)是一种可以包含用户界面的组件,主要用于与用户进行交互,一个应用程序可以包含一个或多个活动创建活动是,勾选Generate Layout File表示会自动为FirstActivity创建一个对应的布局文件,勾选Launcher表示将创建的活动设置为当前项目的主活动,勾选Backwards Compatibility表示会为项目表示启用乡下兼容模式修改虚拟机的路径:新
2017-10-19 00:39:08
681
原创 zygote启动流程
//通过cmd命令,来fork新进程执行类中的main()方法: app_process [可选参数] 命令所在路径 启动的类名 [可选参数]init.zygote32.rc(system/core/rootdir)service zygote /system/bin/app_process(可执行程序所在的目录) -Xzygote(虚拟机参数,在启动虚拟机
2017-10-17 17:08:23
461
原创 第一章
Android Studio使用Gradle来构建项目Android程序的项目结构:1、gradle和idea:这两个目录下放置的都是Android Studio自动生成的一些文件,不需要手动编辑2、app:项目中的代码,资源等内容几乎都是放置在这个目录下的,后面的开发工作也基本都是在该目录下进行3、build:包含一些编译时自动生成的文件4、这个目录下包含了gradl
2017-10-12 22:58:09
240
原创 Androidframework LocationManager笔记
LocationManagerService.java extends ILocationManager.Stubpublic LocationManagerService(Context context) {super();mContext = context;mAppOps = (AppOpsManager)context.getSystemService(Contex
2017-09-30 18:00:34
1919
原创 SystemUI笔记 SystemBars
//SystemBars.java(通知栏) : @Overridepublic void start() {if (DEBUG) Log.d(TAG, "start");mServiceMonitor = new ServiceMonitor(TAG, DEBUG,mContext, Settings.Secure.BAR_SERVICE_COMPONENT, this);
2017-09-30 14:07:25
721
原创 SystemUI PoweUI笔记
private final Receiver mReceiver = new Receiver();//PowerUI:电源管理,继承SystemUI,调用start方法启动public void start() {//获取PowerManager对象,该类主要用于控制电源状态,处理和power相关的业务mPowerManager = (PowerManager) mContext
2017-09-29 12:01:04
330
原创 SystemUI RingtonePlayer
//RingtonePlayer.java:继承SystemUI类,启动时调用start()方法private IRingtonePlayer mCallback = new IRingtonePlayer.Stub() {//播放音乐public void play(IBinder token, Uri uri, AudioAttributes aa, float volume, b
2017-09-29 11:59:06
597
原创 SystemUI VolumeService
//当手机设备当前活动窗口在Launcher桌面,Launcher没有对音量事件做拦截操作,音量键事件将会在PhoneWindow中被消化。protected boolean onKeyDown(int featureId, int keyCode, KeyEvent event) {final KeyEvent.DispatcherState dispatcher =mDecor !
2017-09-29 10:50:57
455
原创 Android笔记 TelephonyRegistry
class TelephonyRegistry extends ITelephonyRegistry.Stub { // 不向上层APP公开的接口 public void addOnSubscriptionsChangedListener(); // 不向上层APP公开的接口 public void removeOnSubscriptionsChangedL
2017-09-28 09:19:12
435
原创 Android笔记 SystemServer
private static boolean startSystemServer(String abiList, String socketName)throws MethodAndArgsCaller, RuntimeException {...//参数准备String args[] = {"--setuid=1000","--setgid=1000","--setg
2017-09-27 15:38:55
287
原创 Android VibratorService
//振动一次public void vibrate(int uid, String opPkg, long milliseconds, int usageHint,IBinder token) {//检测调用者APP是否有android.Manifest.permission.VIBRATE这个权限,所以APP要使用震动服务,需要在AndroidManifest.xml中声明权限/
2017-09-26 16:08:07
713
原创 Android输入系统笔记
InputDispatcher的线程循环由InputDispatchr::diapatchOnce()完成InputDispatcher::diapatchOnce(){1、通过dispatcherInnerOnceLocked()进行输入事件的派发,其传出参数nextWeakupTime决定下次派发线程的循还执行时间2、执行命令队列中的命令,可以通过InputDispatch
2017-08-24 17:45:42
504
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人