Android
咸鱼谈何梦想
这个作者很懒,什么都没留下…
展开
-
Rxjava操作符使用
一、简介Rxjava是基于事件流调用的方式来实现异步的库,它最大的特点就是哪怕逻辑很复杂,依然能保持简洁和优雅。异步操作很关键的一点是程序的简洁性,因为在调度过程比较复杂的情况下,异步代码经常会既难写也难被读懂。其原理是一种扩展的观察者模式。这里有四个角色:被观察者(Observable) ==> 产生事件观察者(Observer) ==> 接收事件,并给出响应动作订阅(Subscribe) ==> 连接被观察者和观察者事件(Event) ==> 被观察者 & 观察原创 2020-08-11 22:57:05 · 405 阅读 · 0 评论 -
Retrofit注解使用大全
一、简介二、注解两张图片均来自简书,https://www.jianshu.com/p/a3e162261ab6GET请求使用public interface ApiService { /** * 最简单的GET请求,无参数 */ @GET("api/fetch/guesslike") Call<GuessLikeEntity> getInfo1(); /** * GET请求,带请求参数 * 请求参数用@原创 2020-08-09 10:13:45 · 934 阅读 · 0 评论 -
Android系统启动流程简析
一、系统启动过程当电源按下时,引导芯片代码从ROM开始执行。加载引导程序BootLoader到内存RAM中。BootLoader是Android系统运行前的一段小程序,主要作用是把系统OS拉起来。拉起系统后,首先启动的是Linux内核,Linux内核启动时会加载驱动,在内核完成设置后会在系统文件里寻找init.rx文件,然后启动init进程。init进程启动后,做了很多初始化工作:(1)创建和挂载启动所需要的系统文件目录,比如挂载用于保存正在运行的进程信息的proc目录。(2)初始化和启动属性服务。原创 2020-08-04 09:48:49 · 249 阅读 · 0 评论 -
TCP/UDP/HTTP/HTTPS
一、TCP和UDP的区别1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接(如送快递,不管你在不在,先送过去)。2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达。UDP尽最大努力交付,即不保证可靠交付。3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流。UDP是面向报文的,所谓面向报文,是指面向报文的传输方式是应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文,因此能够明确区分两个原创 2020-08-04 09:48:01 · 270 阅读 · 0 评论 -
网络OSI模型简介
一.七层?四层?[OSI模型](Open System Interconnection Reference Model,缩写为OSI),全名“开放式系统互联通信参考模型”,是一个试图使各种计算机在全世界范围内互联为网络的标准框架。1983年,国际标准组织(ISO)发布了著名的ISO/IEC 7498标准,它定义了网络互联的7层框架,也就是开放式系统互联参考模型。1.为什么需要协议?什么是协议(protocol)?通俗的来讲,协议是一种双方都明白或者必须遵守的事先约定,比如说长城上放狼烟,是因为人们已原创 2020-08-04 09:47:24 · 1305 阅读 · 0 评论 -
HandlerThread、IntentService基本使用
一、HandlerThread实现异步通信HandlerThread实际上就是使用了Thread+Handler进行封装而已,从使用的角度会比直接用Thread+Handler的形式刚便捷。1、子线程向主线程发送消息final Handler mainHandler = new Handler(getMainLooper()) { @Override public void handleMessage(Message msg) { // 这里处理会在主线程原创 2020-08-04 09:46:17 · 158 阅读 · 0 评论 -
四大组件之Service
一、Service种类1、按运行地点原创 2014-07-02 10:01:09 · 440 阅读 · 0 评论 -
android样式和主题
1、样式和主题的区别:样式的作用范围在控件原创 2014-07-02 16:10:15 · 386 阅读 · 0 评论 -
自定义控件之组合控件
1、该组合控件的布局文件如下,是由ImageView和Tex原创 2014-07-06 14:46:30 · 370 阅读 · 0 评论 -
Activity启动模式及Intent传递对象
一、Activity启动模式1、s原创 2014-06-29 11:09:33 · 703 阅读 · 0 评论 -
Activity生命周期
1、Activity生命周期方法及调用流程。原创 2014-06-28 16:09:39 · 421 阅读 · 0 评论 -
APK安装位置
应用安装的流程及路径 应用安装涉及到如下几个目录: system/app ---------------系统自带的应用程序,获得adb root权限才能删除data/app ---------------用户程序安装的目录。安装时把apk文件复制到此目录data/data ---------------存放应用程序的数据data/dalvik-c转载 2014-05-12 12:51:25 · 1008 阅读 · 0 评论 -
Intent意图的使用
1、显式意图原创 2014-06-28 10:24:08 · 499 阅读 · 0 评论 -
下拉通知Notification
//Notification是系统的服务,所以通过该方式获取NotificationManager对象 NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); //获得Notification对象 Notification notifi原创 2014-07-02 15:06:04 · 529 阅读 · 0 评论 -
动画的简单介绍
一、帧动画res/drawable/frame_animaiton.xml<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="true"> oneshot的含义是:动画是否只播放一次原创 2013-11-08 15:04:35 · 704 阅读 · 0 评论 -
四大组件之ContentProvider使用
1、自定义一个类,继承ContentProvider,该原创 2014-06-22 09:22:44 · 482 阅读 · 0 评论 -
Android软件卸载安装分享等
1、APP安装/** * 安装APK * * @param file */ public void installApk(File file) { Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.addFlags(Intent.FLAG_ACTIVITY_NEW原创 2014-07-15 15:20:27 · 622 阅读 · 0 评论 -
数据存储之SQLite使用
一、使用SQL语句进行增删改查等操作1、原创 2014-06-21 10:25:42 · 497 阅读 · 0 评论 -
XML序列化及PULL解析,DOM解析,SAX解析
一、XML序列化原创 2014-06-15 11:18:51 · 721 阅读 · 0 评论 -
自定义控件之触摸事件的传递
1、dispatchTouchEvent方法:每个原创 2014-04-12 18:17:26 · 1005 阅读 · 0 评论 -
自定义控件之仿IOS的ToggleButton
1、MyToggleButton.java原创 2014-07-07 09:25:44 · 1149 阅读 · 0 评论 -
android数据存储之文件方式和SharedPreference
一、文件方式1、保存数据进内原创 2014-06-15 10:25:28 · 721 阅读 · 1 评论 -
自定义控件之ListView下拉刷新,上拉加载更多
1、RefleshListView.javapackage com.example.refleshlistviewdemo;import android.content.Context;import android.util.AttributeSet;import android.view.LayoutInflater;import android.view.MotionEvent;原创 2014-07-06 17:23:30 · 938 阅读 · 0 评论 -
android JUnit单元测试及Debug
1、本程序单元测试1原创 2014-05-31 08:13:14 · 612 阅读 · 0 评论 -
Android图片的一些操作
// 加载大的图片进内存,很容易出现内存溢出的现象,因为每个应用程序的VM Heap都很小16M/32M左右 // 因此经过处理后再加载进内存是比较合理的。 // 1,获取屏幕分辨率 WindowManager windowManager = getWindowManager(); int screenWidth = windowManager.getDefaul原创 2014-07-02 11:34:29 · 404 阅读 · 0 评论 -
多线程下载及XUtils框架使用
一、多线程下载原创 2014-06-27 12:13:56 · 1605 阅读 · 0 评论 -
HttpClient中的GET请求和POST请求
1、Get请求原创 2014-06-24 20:54:50 · 416 阅读 · 0 评论 -
HttpUrlConnection的GET请求和POST请求
1、Get方式,该方式原创 2014-06-23 18:22:52 · 601 阅读 · 0 评论 -
Android下多线程下载
一、多线程下载1、main.java本类的核心是获取请求的网络资源长度,对每条线程的请求资源范围进行分配,创建线程和开启线程。这次只是为了测试,如果是在Android代码中,一般这种网络操作也是放到子线程中。public class Demo { private static long startPosition; private static long endPositi原创 2013-11-12 15:54:17 · 600 阅读 · 0 评论 -
Android中XML文件解析、系列化及JSON解析
一、XML文件系列化XmlSerializer ser = Xml.newSerializer(); //生成XML序列化器File file = new File(Environment.getExternalStorageDirectory(), "worker.xml"); try { FileOutputStream output = new FileOutputStrea原创 2013-11-10 18:58:00 · 698 阅读 · 0 评论 -
Android数据存储
一、以文件(File)的方式存储1、存储到手机内存(1)通过FileOutputStream类来实现File file = new File("/data/data/com.example.test/123.txt"); try { fos = new FileOutputStream(file); fos.write("hello world".getBytes(原创 2013-11-10 15:43:37 · 478 阅读 · 0 评论 -
Android中Shape的了解
在res/drawable下的XML文件有Shape这样的一个属性,这个属性的主要作用是对一些UI进行美化、设置指定形状等<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" android:shape="oval" andr原创 2013-11-09 09:33:26 · 602 阅读 · 0 评论 -
Android 虚拟键盘弹出把底部栏顶上去的解决办法
转载 2013-11-22 23:25:54 · 2905 阅读 · 0 评论 -
fragment的使用
一、fragment的静态生成第一步,main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"原创 2013-11-08 11:05:45 · 707 阅读 · 0 评论 -
异步任务AsyncTask的使用
AsyncTask就是对Thread和Handler的结合进行了封装而已,在进行一些耗时的网络操作时使用。第一步,定义一个类继承于AsyncTask类,代码如下:private class MyAsyncTask extends AsyncTask{ @Override protected void onPostExecute(Bitmap result) { supe原创 2013-11-07 12:51:20 · 658 阅读 · 0 评论 -
ListView分页加载数据
第一步,ListView底部加载数据时的布局文件<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <原创 2013-10-27 21:07:15 · 482 阅读 · 0 评论 -
LayoutInflater的使用和参数含义
LayoutInflater类里的inflate方法类似于findViewById,它是把一个xml布局文件加载成为View对象。和setContentView的最大区别在于,setContentView是加载该布局文件后马上显示出来。获得LayoutInflater对象的方法有三种(1)LayoutInflater.from(this)(2)Activity里的get原创 2013-10-26 22:36:53 · 728 阅读 · 0 评论 -
ListView中的Item点击和Button点击焦点冲突
当ListView的Item中有Button的时候,会出现Button可以点击,但是Item不可以点击的问题。解决办法如下:在ListView的每一个Item布局文件的最外层布局加上如下代码: http://schemas.android.com/apk/res/android" android:layout_width="wrap_con转载 2014-02-17 22:16:20 · 1269 阅读 · 0 评论 -
ListView中convertView只有第一次为null的原因
ListView android:id="@+id/result" android:layout_width="fill_parent" android:layout_height="fill_parent"/>此处请注意,ListView的android:layout_height属性值为"fill_paternt原创 2014-02-19 12:13:49 · 1494 阅读 · 2 评论 -
Log的使用
1、Log的级别VERBOSE 类型调试信息,所有类型的信息都不过 DEBUG 类型调试信息, debug调试信息 INFO 类型调试信息, 一般提示性的消息information WARN 类型调试信息,warning警告类型信息 ERROR 类型调试信息,错误信息原创 2014-05-12 22:36:47 · 401 阅读 · 0 评论