自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (17)
  • 收藏
  • 关注

原创 Android Activity生命周期和启动模式

当一个具有singleTask模式的Activity请求启动后,比如Activity A,系统首先会寻找是否存在A想要的任务栈,如果不存在,就重新重建一个任务栈,然后创建A的实例后把A放在栈中。如果存在A所需的任务栈,这时要看A是否在栈中有实例存在,如果存在的话,就会把A上面的其他Activity的实例clear,将A调到栈顶并调用它的onNewIntent方法,如果不存在,就创建A的实例,并把A压入栈中。action的匹配规则是Intent中的action必须能够和过滤规则中的action匹配。

2024-08-02 17:57:13 859

原创 Android 同步锁

关键字锁的作用用法:可见性、有序性、原子性。可见性,当一个共享变量被volatile修饰时,它会保证修改的值立即被更新到主存,当有其他线程需要读取时,它会去内存中读取新的值。另外synchronized也会保证可见性。有序性,我们通过关键字volatile确保指令不会重排。原子性,明为volatile,对它们的操作就会变成原子级别的。但这有一定的限制。如果对n的操作是原子级别的,最后输出的结果应该为n=1000,而在执行上面积代码时,很多时侯输出的n都小于1000,这说明n++不是原子级别的操作。

2024-08-01 16:07:08 1204

原创 Android的线程和线程池

线程分别主线程和子线程。在Android中,主线程也就是UI线程。在Android中,除了Thread本身以外,在Android中扮演线程角色的还有很多:AsyncTask、IntentService以及HandlerThread。对AsyncTask来说,底层使用了线程池。对与IntentService和HandlerThread来说,它们的底层则直接使用了线程。HandlerThread是一种特殊的线程,具有消息循环的线程,在它内部可以直接使用Handler。

2024-07-31 17:21:46 882

原创 Android View的工作原理

自定义View是一个综合的技术体系,它涉及View的层次结构、事件分发机制和View的工作原理等细节。自定义View的分类1.继承View重新onDraw主要是实现一些不规则的图形。重写onDraw方法。采用这种方式需要自己支持wrap_content, 并且padding也需要自己处理。2.继承ViewGroup派生特殊的Layout。

2024-07-30 18:07:58 833

原创 Android View的事件

在onInterceptTouchEvent方法中,首先ACTION_DOWN这个事件,父容器必须返回false,即不拦截,这是因为一旦父容器拦截了ACTION_DOWN,那么后续的ACTION_MOVE和ACTION_UP事件都会直接交由父容器处理,这个时候就没法再传到子元素了;都是View的内容在偏移。同一个事件序列是指从手指接触屏幕的那一刻起,到手指离开屏幕的那一刻结束,在这个过程中所产生的一系列事件:这个事件序列以Down事件开始,中间含有数量不定的move事件,最终以up事件结束。

2024-07-29 18:17:05 1739

原创 Android的消息机制

当Handler的send方法被调用时,它会调用MessageQueue的enqueueMessage方法将这个消息放入消息队列中,然后Looper发现有新的消息到来时,就会处理这个消息,最终消息中的Runnable或者Handler的handleMessage方法就会被调用。其实post方法最终也是通过send方法来完成的。Looper在Android的消息机制中扮演着消息循环的角色,它会不停地从MessageQueue中查看是否有新消息,如果有新消息就会立即处理,否则就一直阻塞在那里。

2024-07-26 15:52:17 792

原创 Android 性能优化

通过getContext()获取Context实例。Activity/Service:这两个类都是ContextWrapper的子类,在这两个类中可以通过getBaseContext() 获取他们的Context实例,不同的Activity或者Service实例,他们的Conetxt都是独立的,不会复用。绘制过程是CPU准备数据,通过Driver层把数据交给CPU渲染,其中CPU主要负责Measure,Layout,Record,Execute的数据计算工作,GPU负责Rasterization渲染。

2024-07-26 14:23:29 1814

原创 Android 启动流程

ActivityStack.resumeTopActivityLocked(获取栈顶的activity,并通知Launcher应该pause掉整个Activity以便启动新的Activity)ActiviyStack:Activity在AMS的栈管理,用来记录已经启动的Activity的先后关系,状态信息等。第三步:检查activity所在的进程是否存在,如果存在,直接通知这个进程,在该进程中启动Activity;不存在的话,会调用Process.start创建一个新的进程。

2024-07-25 12:29:04 355

原创 Android IPC

首先创建一个Service和一个AIDL接口,接着创建一个类继承自AIDL接口中的Stub类并实现Sub中的抽象方法,在Service的onBind方法中返回这个类的对象,然后客户端就可以绑定服务端Service,建立连接以后就可以访问远程服务端的方法了。Binder是Android中的一个类,它实现了IBinder接口。我们通过socket来实现进程间的通信。其次在客户端绑定服务端的Service,绑定成功后,将服务端返回的Binder对象转成AIDL接口所属的类型,接着就可以调用AIDL中的方法了。

2024-07-24 17:55:41 860

原创 Android JVM

每次使用其中一块,当内存不足时,将存活的对象复制到另一块上,然后清理掉是使用过的区域,这种算法解决了内存碎片问题,但牺牲了内存利用率,因为每次申请内存时只能使用一半的空间。优点简单,但存在效率问题和内存碎片问题,即标记和清除过程的效率不高,且清除结束后会造成大量的碎片空间,可能导致在申请大块内存时因为没有足够的连续空间而再次触发垃圾收集。a是栈帧中的本地变量,当a = null时,由于此时a充当了GC Root的作用,a与原来指向的实例new Test()断开了链接,所以对象会被回收。

2024-07-23 16:43:11 1759 1

原创 解读react-native-webview

本人出生于江西省新余市的一个小山村,山村所有人家都来自之前的胡氏家族的一个分支。整个村子就30多户人家,总人口不超过200。在我3,4岁时,大人告诉我中国的北京,北京还有清华大学,世界的美国时,我就脱口而出,我要去北京,我要去清华,我要去美国。然后,我也很争气,一直很努力,很听话,中考是全乡的第一名,然后进入江西省新余市的省重点高中新余四中。然后我依然很努力,也很争气,高一第一次其中考试我得了全校...

2021-03-16 10:35:46 803

转载 React Native与Android通信交互

转载https://blog.youkuaiyun.com/u013718120/article/details/55506238, 根据原文,加上自己的理解,稍微修改了代码。可以使React Native与Android整个流程跑起来。

2019-05-29 10:26:00 199

CeilingHeader

吸顶效果,非 itemDecoration实现,且可以点击

2024-04-19

ItemDecoration实现recyclerView实现头部吸顶

使用ItemDecoration实现recyclerView实现头部吸顶效果

2024-04-17

ReactNativeApp-master.zip

React Native与Android,实现React Native与Android 的交互。通过 diff 生成 Patch 文件,然后再结合merge,生成新的bundle文件。实现React native 的热更新。

2019-05-29

百度语音合成,离线模式,非离线模式

集成了百度语音合成的离线模式,在线模式,经测试是可以正常运行,百度不支持纯离线,离线第一次必须先连网校验通过之后,离线才能使用。

2018-12-06

科大讯飞离线合成等功能演示

将科大讯飞的Demo整合成各种功能,离线合成,语音识别等等功能。

2018-12-06

GreenDaoDemo

GreenDaoDemo的创建是基于博客http://www.jianshu.com/p/f4023fc0f8cd。 实现了GreenDao数据库的增 删 更 搜索。

2017-09-14

Handler异步消息处理机制创建图加载类

Handler异步加载图片 GridView 上拉刷新 下拉刷新 里面也有其他控件(比如ListView ScrollView等等)的上拉刷新 下拉刷新

2016-09-08

ReadXMLDemo

There is a Read XML Demo to show Pull SAX Dom work.

2016-09-07

ImageSliderLibrary

无限循环播放广告图片,且带有动态翻页效果

2016-08-30

微信支付Demo

微信支付Demo

2016-07-18

android 模拟手机淘宝物流详情

模拟手机淘宝 展示物流详情

2016-07-18

基于RecycleView 右侧滑动显示删除修改操作

基于RecycleView 右侧滑动显示删除修改操作

2016-07-01

Okhttp上传 下载文件显示进程

Okhttp上传 下载文件回调 显示进程

2016-07-01

Android 二维码生成与扫描

Zxing二维码生成与扫描的使用

2016-05-17

WelcomeApp

这是一个用Android Studio工具建立的一个运行在手机或电视机的小型Demo

2016-03-15

简单的商品展示

这是一个很简单的类似京东等网上购物平台的app。

2016-01-12

本地音乐播放器

这是一个简单的本地音乐播放器,播放方式有随机,顺序,循环,单曲循环

2015-10-14

android SlidingMenu

There is a simple demo to show how a slidingmenu works.

2015-10-13

视频播放器

这是一个简单的android 视频播放器

2015-10-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除