android
文章平均质量分 83
宋大人-专注
每天都是一个新的开始,用饱满的激情迎接每一天
展开
-
AsyncSubject,BehaviorSuject,PublishSubject和ReplaySubject之间的区别
知识无所谓新旧,学到了,让我们成长了就是收获.重新认识一下RxJava中的Subject,是一个桥梁或代理的角色,他即可做observer又可以做observable,因为他即可充当Observer观察数据,还可以充当Observable发射数据.subject的种类针对不同场景提供了四种subject供我们使用,分别视AsyncSubject,BehaviorSubject,ReplaySubject,下面就分析一下他们各自的特点和使用场景.AsyncSubjectAsyncSubject是异步原创 2022-01-16 19:57:16 · 2091 阅读 · 0 评论 -
android 9.0广播动态注册和接收流程
概述BroadcaseReceiver是Android的四大组件之一,它可以在应用内发送通知也可以Android 应用与 Android 系统和其他 Android 应用之间可以相互收发广播消息,这与发布-订阅设计模式相似。这些广播会在所关注的事件发生时发送。一般来说广播可以作为应用和普通用户交流之外的消息传递系统.广播接收者注册方式分在清单声明的接收器,在清单中注册的广播接收器,如果应用没有启动,系统会在广播发出后启动应用利用上下文注册的接收器,利用上下文注册的广播比较灵活,在不需要接收广播时要原创 2021-02-22 22:05:53 · 1557 阅读 · 0 评论 -
android9.0 Service绑定流程
关系图ContextWrapper到AMS方法调用时序图通过bind方式启动Service首先要调用bindService方法,bindService是在Context中定义的抽象方法,在ContextWrapper实现了该方法, Context mBase; ... @Override public boolean bindService(Intent service, ServiceConnection conn, int flags) {原创 2021-02-14 11:07:02 · 439 阅读 · 0 评论 -
android 9.0 Service启动流程
Service的start方式启动流源码梳理是基于android 9.0的,在梳理过程考了《android进阶揭秘》,后面对这一块有新的认识会持续更新ContextWrapper到AMSstartService启动第一个跨进程通信,使用启动进程到请求AMS的流程.Activity调用startService方法,调用的是Context中定义的方法,但是这里抽象方法,他的实现类是ContextWrapper.java,在ContextWrapper.java中又调用了mBase的startService方原创 2021-02-07 15:45:55 · 463 阅读 · 0 评论 -
linux 环境下通过NDK 生成so文件
下载 .https://developer.android.com/ndk/downloads/index.html 解压下载的文件 tar -zxvf android-ndk-r10b.tar.gz 将eclipse 中的jni 文件夹复制到 解压出来的android-ndk-r10b 目录下 执行 ./ndk-build命令执行完就会在android-ndk-r10b 目录下...原创 2018-06-12 07:57:24 · 1230 阅读 · 0 评论 -
java 反射
今天项目项目中用到了反射,就趁热打铁把自己现在知道的反射知识总结一下,如果有理解偏差和不足的地方,后期进行及时更改。下面进入正题 1 什么是反射: 使用反射可以动态的操纵java代码程序,也就是在java程序运行时加载java代码,反射的定义是能够分析类能力的程序称为反射。 2 反射用什么作用: 使用反射机制可以用来: 在运行中分析类的能力; 在运行中查看对象 实现通用的数组操作代码。原创 2017-12-17 10:36:42 · 225 阅读 · 0 评论 -
android AudioTrack
AudioTrack 是一个音频播放器,这个类我们用很少,基本都是使用的是MediaPlayer 或者一些第三方的播放器,其实他们内部也都是调用的audioTrack,为什么不我们不直接使用audioTrack,首先是他支持播放的音频格式少,它只支持播放PCM编码格式的音频流,例如播放MP3格式就需要解码转换成PCM音频流,第三方的播放器就是做了音频的解码和转换。andioTrack 支持两种原创 2017-12-22 09:09:26 · 1161 阅读 · 0 评论 -
android 连接tftp 服务器
Android 连接TFTP服务器 服务器端:搭建环境:w10 64位系统,服务器为tftp64: Current Directory 为服务器的根目录,存放要下载的文件。 Server interface 是服务器的端口 下面选择Tftp Server 因为这里我们要做Tftp服务器。 Tftp 下载连接 http://tftpd32.jounin.net/ 下载完成直接安装就行原创 2017-12-15 11:04:13 · 3300 阅读 · 0 评论 -
Kotlin一个简单的Android 程序
上周在https://www.kotlincn.net/docs/reference/ 学习了Kotlin,是在eclipse 安装的插件进行练习的,把里面的知识通过代码练习过后,就有用Kotlin开发android 的冲动。 这个简单的程序就实现了一个拨打电话的功能 AndroidManifest.xml<?xml version="1.0" encoding="utf-8"?&...原创 2018-06-14 10:56:29 · 1246 阅读 · 2 评论 -
android CMakeLists.txt文件详解
很多时候时候我们不得不感叹工具的强大是我们的生活和和工作变的越来越简单。在android 的ndk 开发中我们历经了有命令编译到eclipse 在studio 的工具的变迁,这一切都是朝着开发流程越来越简单,开发效率越来越高的方向发展。 今天学习了如何在Studio 使用CMakeLists.txt配置文件进行NDK 开发,感觉流程简单了很多,今天想详细介绍换一下CMakeLists.txt的使...原创 2018-06-18 12:51:26 · 5080 阅读 · 3 评论 -
Android 首字母索引
Aandroid 首字母索引在一般具有选择联系和城市列表的功能的App中都是非常常见,并且实用性很高。由于之前做的应用真的没有用到过首字母索引的功能,并且android没有提供对应的组件,也就没向这方面考虑过。但是现在的项目要求要有这项功能,并且在网上一搜会有很多,都挺好的,并且大致思想都差不多,所以我也研究了一下,自己实现了一个,并且把自己的实现实例记录了下来。希望能对需要的小伙伴提供帮助。 ...原创 2018-08-19 12:23:42 · 4662 阅读 · 2 评论 -
Android 封装BasseActivity
在Android开发中作为四大组件之一的Activity的使用频率非常高,我们的应用展现给用户的每一个界面基本上都离不开Activity。在一个项目中会用到多个Activity用于展示不同内容,虽然展示的内用不同,但是通过观察界面和和代码就会发现有些代码在几个Activity基本是类似的,比如一些头布局和一些广播的注册等。这些代码我们就可以抽取出来封装到一个共同的父类中,具体的实现在之类中实现,这...原创 2018-09-25 09:10:28 · 392 阅读 · 0 评论 -
Android中在app被系统释放后,重新回到前台时,重建Activity出现Fragment重叠现象
android 开发中Frgment应用场景非常广泛,应用Fragment是必须使用FragmentActivity,有时候会出现这样一种情况,在应用退到后台后,系统会在内存不足时将应用回收掉,再次启动应用会出现Activity中的Fragment重叠现象,其实出现问题的原因是这样的,在回收应用回收前FragmentActivity会调用onSaveInstanceState(Bundle out...原创 2018-11-24 20:35:41 · 2953 阅读 · 1 评论 -
ViewPager+Fragment使用中的几个常见问题总结
1.实现循环切换思路一:在ViewPager的Adapter中返回count的值为 Integer.MAX_VALUE ,进行初始化的时候讲ViewPager的 setCurrentItem(int item) 的方法中传入Integer.MAX_VALUE的一个中间值,因为Int的最大值是2147483647 如果设它的中间值用户是很难滑到两端的,但是并意味着不能滑到两端。思路二:在item...原创 2018-11-24 20:56:35 · 1864 阅读 · 0 评论 -
Android 设置完autoLink属性后自定义跳转到指定界面
在TextView 中设置autoLink 属性可以自动识别Web URL,电话号码,电子邮件地址添加下划线改变字体颜色并实现点击事件,支持自动识别的类型:android:autoLink=“web” 匹配Web URL。android:autoLink=“phone” 匹配电话号码android:autoLink=“email” 匹配电子邮件地址android:autoLink=“map...原创 2018-11-24 21:07:23 · 6874 阅读 · 0 评论 -
ubuntu 配置tftp 服务器
fttp服务器搭建 安装服务端和客户端 1.sudo apt-get install tftp-hpa tftp-pha 建立目录: song@song-virtual-machine:~sudomkdir/tftpbootsong@song−virtual−machine: sudo mkdir /tftpboot song@song-virtual-machine:~ sudo原创 2017-12-12 14:34:40 · 666 阅读 · 0 评论 -
java socket 通信
Java Socket通信 通过Java Socket 实现网络通信,java socket 在java.net 包中,实现通信首先有一个服务端和一个客户端。 开始之前我们先了解一下端口号,TCP /IP的基本知识。 端口号的知识:端口号用来区分计算机不同的服务,范围为TCP/IP协议中的服务端口,端口号的范围从0到65535,0到1023为系统保留的端口号,我们设置端口号的时候要设置102之原创 2017-12-10 11:13:14 · 454 阅读 · 0 评论 -
Android app 静默安装卸载
实现android apk 的安装和卸载 1实现apk安装/** * 安装APK文件 */ public static void installApk(Context context, String filePath) { File apkfile = new File(filePath); if (!apkfile.exists())原创 2017-09-12 16:14:01 · 582 阅读 · 0 评论 -
android 解析html网页
Android 解析HTML 使用Jsoup解析HTML数据 对Android 解析html 数据,用的不是太多,自己也是最近才了解到,分享给大家,希望有所帮助。Document doc = Jsoup.connect(“http://www.radio366.com/xx.asp?sheng=bj“).timeout(5000).get(); Element conte原创 2016-08-17 22:30:30 · 815 阅读 · 0 评论 -
android annotation配置及简单使用
1.环境配置 将 android annotations-api-3.1.jar拷贝到libs目录下 在项目的根目录中创建compile-libs 并放置 androidannotations-3.1.jar 2.右键单击项目->properties-> 3.勾选Enable annotation processing 4.添加 jar文件 另外在一些Eclipse 中可能找不到An原创 2016-08-17 22:52:17 · 982 阅读 · 0 评论 -
android 如何获取第三方app的sha1值
对于android 应用的sha1值和md5值的获取,如果是我们自己的应用,不论是获取测试的和正式的都是比较方便的。但是如何去别人开发的app的sha1和md5呢,并且我们只有apk有没有相关的文档。这种情况大家是很少用遇到,很少遇到,并不证明不会遇到,今天我就遇到了这样的问题。所以想把自己的一些经验分享出来,希望能给大家一些帮助。 1.把apk的格式改为压缩文件,进行解压。 2.在解压出来的文原创 2016-08-28 10:50:07 · 6834 阅读 · 0 评论 -
android 修改系统时间
在 android 的API中有提供 SystemClock.setCurrentTimeMillis()函数来修改系统时间,但是我们在使用的时候如果仅仅的使用这个方法,不用其他设置的话,根本修改不了时间。原因是这里还需要权限的设置。这里所说的权限不是我们平常所理解的像添加访问网络之类的权限。这里要获取的权限是系统的权限。 android:sharedUserId=”android.uid.sys原创 2016-08-28 11:15:26 · 1617 阅读 · 0 评论 -
android ExpandableListView简单使用
今天在项目中要实现一个可以展开的列表,我首先想到的就是android的ExpandableListView,这个使用起来还是挺方便的,可以对ListView进行收放。现在直接上代码吧。在布局文件中添加 ExpandableListView Activity中的代码public class MainActivity extends ActionBarActivity { private原创 2016-09-25 00:00:46 · 381 阅读 · 0 评论 -
android Notification使用
今天看了一下android的消息提示Notification,别且写了一个小例子,总结一下,一遍以后使用查找方便,同时希望能给需要的朋友提供帮助。 1.创建一个简单的Notification提示。 使用NotificationCompat.Builder对象指定Notification的UI内容与行为 setContentTitle()设置标题 setContentText( )设置内容原创 2016-10-07 16:41:04 · 337 阅读 · 0 评论 -
linux 下配置eclipse的启动图标
ctrl+alt+t打开终端 sudo gedit /usr/share/applications/eclipse.desktop 会打开一个文件: 输入如下内容: [Desktop Entry] Encoding=UTF-8 Name=Eclipse Comment=Eclipse IDE Exec=/home/song/eclipse/adt-bundle-linux-x86原创 2016-11-11 10:02:19 · 1056 阅读 · 1 评论 -
linux 下android studio 配置svn
linux环境下android studio配置svn http://subversion.apache.org/packages.html#ubuntu 安装指导 1.ctrl+alt+t打开终端 2.在终端输入命令 apt−getinstallsubversion apt-get install subversion apt-get install libapache2-svn原创 2016-11-09 16:44:30 · 1144 阅读 · 0 评论 -
ubuntu linux 下打开draw9patch
ctrl+alt+t打开终端,切换到draw9patch所在的目录 chmod +x draw9patch ./draw9patch原创 2016-11-17 17:22:58 · 427 阅读 · 0 评论 -
android 手势滑动
public class MainActivity extends ActionBarActivity { private String TAG="MainActivity"; private GestureDetector gestureDetector; @Override protected void onCreate(Bundle savedInstance原创 2016-11-02 15:51:15 · 460 阅读 · 0 评论 -
android ExpandableListView 界面更新数据
今天使用ExpandableListView 进行数据更新的时候,发现使用ListView的那一套更新数据的方法行不通,后来在网上查阅了一些资料,发现ExpandableListView 必须进行一次收起展开才能把界面更新,这样问题就比较好解决了,在数据处理完成之后,对指定的位置进行一下收起展开就行了。 collapseGroup(position);收起 expandGroup(positio原创 2017-01-12 11:31:27 · 2606 阅读 · 0 评论 -
android广播
Android 广播 Android 的广播机制介绍 是一种组件之间进行消息传递的一种方式,广播机制是一种基于消息发布和订阅的事件驱动模型,即广播发送者负责发送消息,而广播接受者需要事先订阅消息,让后才能接收到消息。 Android 广播的常用场景 Android的广播使用场景十分常见,如手机来电的广播,收发信息的广播。 Android 广播的类型 无序广播 无序广播是一种完全异步的广原创 2017-06-24 12:09:29 · 228 阅读 · 0 评论 -
android Toast设置弹框大小
在一般的android开发中我们一般弹出一些提示信息,例如 已打开蓝牙,wifi之类的提示,我们都是会选择Toast进行弹出。今天我们的客户提出们应用弹出提示太小,用户不注意的情况下,容易被忽略掉,要弹出的宽度填充整个屏幕,首先想到是不是需要自定义Toast,经过自己的一番研究后,发现不需要自定Toast,用现有的Toast就可以轻松实现了。 public void showToast(Cont原创 2017-06-24 18:41:53 · 9917 阅读 · 0 评论 -
ExpandableListView嵌套Gridview显示不全的问题
自定义GridView重写 onMeasure方法@Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_M原创 2017-08-30 11:41:57 · 848 阅读 · 0 评论 -
Error executing aapt: Cannot run program "/home/song/dev_tool/adt-bundle-linux-x86_64-20140702/sdk/b
我是从之前的ubuntu 工作环境中复制过来的项目,两个系统都是ubuntu 16.04,就是不明白了为什么出错。问题 :Error executing aapt: Cannot run program “/home/song/dev_tool/adt-bundle-linux-x86_64-20140702/sdk/build-tools/android-4.4W/aapt”: error=2,原创 2017-09-01 16:19:56 · 562 阅读 · 0 评论 -
深入理解android Handler机制
通过源码理解android 中Handler,Message,Looper,MessageQueue之间的关系,之前说到handler机制,都是在网上看到得别人是怎么讲解的,自己就机械的记下来,回来忘了再到网上搜一堆资料看看,对自己本身能力没有太大的提升。纸上得来终觉浅 绝知此事要躬行。开始试着自己阅读源码,进行深入理解一下。 首先分别介绍一些handler,message,Looper,Mess原创 2017-11-02 21:11:34 · 464 阅读 · 0 评论 -
android在ScrollView嵌套listview不能正常显示
android scrollview 嵌套listview原创 2016-05-02 15:19:27 · 549 阅读 · 0 评论