- 博客(60)
- 资源 (22)
- 问答 (3)
- 收藏
- 关注
原创 Java Socket实现基于TCP和UDP多线程通信
1.Socket 通信简介及模型 Java Socket 可实现客户端–服务器间的双向实时通信。java.net包中定义的两个类socket和ServerSocket,分别用来实现双向连接的client和server端。通过Socket实现TCP编程1.1 TCP编程 TCP协议是面向连接,可靠的,有序的,以字节流的方式发送数据。基于TCP协议实现网络通信的类有客户端的Socket类和服务器
2017-05-28 10:12:45 7679 2
原创 常用 Android 开发者选项与卡顿原因
Android 开发者选项能够帮助我们定位开发中遇到的问题,辅助我们了解应用的性能问题,对提升开发和优化效率大有帮助。Stay awake (不锁定屏幕)充电时屏幕不会休眠Process Stats (进程统计信息)使用场景: 查看后台进程和资源占用,以图形的方式展示了后台运行的进程,以及相应的运行时间和内存占用。使用说明: 如图,左上角是指其统计的时间范围,而其下面的条形区域的进度颜色则显示了当前
2017-05-27 23:48:15 4849
原创 fragment懒加载
fragment生命周期·生长消亡联动规律:activity先生长,fragment再生长,fragment先消亡,activity再消亡·具体联动:AonCreate==>FonAttatch-FonCreate-FonCreateView-FonActivityCreatedAonStart==>FonStartAonResume==>FonResume===========
2017-05-24 11:16:39 441
原创 listview与viewpager结合使用
1、viewpager作为listview的头部布局:核心: lv.addHeaderView(view);示例:布局:activity_main.xml<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:
2017-05-22 17:56:25 3379 1
原创 listview的分页
分页原理:1、设置setOnScrollListener监听滑动到底部 // 设置listview的滚动监听 // 设置分页 lv.setOnScrollListener(new AbsListView.OnScrollListener() { @Override public void onScrollStateCh
2017-05-22 17:38:37 463
原创 listview嵌套listview
问题:listview嵌套listview,会显示不全。解决办法: /** * 设置Listview的高度 */ public void setListViewHeight(ListView listView) { ListAdapter listAdapter = listView.getAdapter();
2017-05-22 17:29:47 1069
原创 Java-普通代码块,构造代码块,静态代码块
结论:执行顺序(优先级从高到低):静态代码块>main方法>构造代码块>构造方法。其中静态代码块只执行一次。 构造代码块在每次创建对象是都会执行。1 普通代码块普通代码块:在方法或语句中出现的{}就称为普通代码块。 普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定–“先出现先执行”/** * Created by Administrator on 2017/5/19. *///普
2017-05-19 22:45:39 276
原创 Java - 集合转换(数组、List、Set、Map相互转换)
import java.util.*;/** * Created by Administrator on 2017/5/19. */public class ConvertorTest { /** * @param args */ public static void main(String[] args) { testList2Array();
2017-05-19 16:50:09 300
原创 java-排序
import java.util.Arrays;/** * Created by Administrator on 2017/5/19. */public class sortTesty { public static void main(String[] args) { sortIntArray(); sortStringArray(); }
2017-05-19 12:19:07 335 1
原创 java-static、final、static final的区别
final可以修饰:属性,方法,类,局部变量(方法中的变量),Java关键字final有“这是无法改变的”或者“终态的”含义。 final修饰的属性的初始化可以在编译期,也可以在运行期,初始化后不能被改变。 final修饰的属性跟具体对象有关,在运行期初始化的final属性,不同对象可以有不同的值。 final修饰的属性表明是一个常数(创建后不能被修改)。 final修饰的方法表示该方法在子类中不能
2017-05-15 09:09:05 415
原创 Android-进程与线程
一、进程进程是一个动态的过程,每一个App的运行都是在一个独立的进程中,进程有自己独立的内存和数据空间,进程的名字就是App的packageName,这些进程都是从Zygote进程Fork出来的,并受AMS(ActivityManagerService)管理。默认情况下,同一App的所有组件均在相同的进程中运行,但也可以允许App有多个进程。在AndroidManifest.xml里边给四大组件配置
2017-05-14 01:49:10 443
原创 Android-ANR
参考:如何分析解决Android ANR App性能优化系列6-ANR详解一:什么是ANRANR : Application Not Responding,即应用无响应。二:ANR的类型ANR一般有三种类型: 1:KeyDispatch Timeout(5 seconds) –主要类型 按键或触摸事件 在特定时间内无响应 2:Broadcast Timeout(10 seconds) Br......
2017-05-14 01:15:52 710
原创 Java IO的RandomAccessFile的使用
参考: Java IO的RandomAccessFile的使用RandomAccessFile是Java中输入,输出流体系中功能最丰富的文件内容访问类,它提供很多方法来操作文件,包括读写支持,与普通的IO流相比,它最大的特别之处就是支持任意访问的方式,程序可以直接跳到任意地方来读写数据。RandomAccessFile类中比较重要的2个方法如下,其他的方法和普通IO方法类似。RandomAcces
2017-05-12 16:46:47 567
原创 Android-断点续传
断点续传原理在本地下载过程中要使用数据库实时存储到底存储到文件的哪个位置了,这样点击开始继续传递时,才能通过HTTP的GET请求中的setRequestProperty()方法可以告诉服务器,数据从哪里开始,到哪里结束。 同时在本地的文件写入时,RandomAccessFile的seek()方法也支持在文件中的任意位置进行写入操作。 同时通过广播将子线程的进度告诉Activity的Process
2017-05-12 16:09:58 622
原创 Android-sqlite的命令,保证数据库只有最新的若干条
创建表//创建表 create table student(sid integer primary key autoincrement not null,gender varchar(20) not null,score integer not null);增insert into student(sname,gender,score) values('Li'...
2017-05-12 15:16:40 654
原创 Android-SQLite和SQLiteOpenHelper
参考: Android 操作SQLite基本用法demo的GitHub地址:https://github.com/Ablexq/MyGreenDao一、 SQLite介绍SQLite是android内置的一个很小的关系型数据库。 SQLite的官网是http://www.sqlite.org/,可以去下载一些文档或相关信息。SQLite的特点:轻量级 SQLite和C...
2017-05-12 15:04:15 2433
原创 Android:ArrayAdapter 与 entries的使用
布局:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" a
2017-05-12 09:33:21 2944
原创 Android- SlidingMenu侧滑菜单
参考: Android SlidingMenu 使用详解(鸿阳)导入slidingMenuSlidingMenu GitHub地址:jfeinstein10/SlidingMenu先从GitHub上下载slidingMenu,打开文件如图:library是我们依赖的核心内容。打开library文件夹如下:新建module,并把上面三个红色框住的文件夹复制到新module的src/main中,并把sr
2017-05-11 17:38:09 930
原创 butterknife-空指针异常
使用butterknife会有空指针异常,如下: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.administrator.myapplication/com.example.adminis
2017-05-11 16:05:34 2521
原创 Android-刷新之三:android-Ultra-Pull-To-Refresh
GitHub:liaohuqiu/android-Ultra-Pull-To-Refresh推荐阅读: 【框架学习】【android-Ultra-Pull-To-Refresh】 我眼中的下拉刷新简介:android-Ultra-Pull-To-Refresh的特点是:内置各种下拉刷新交互风格。遗憾的是这个库不支持上拉加载更多。Android studio使用,可直接添加依赖: compi
2017-05-11 14:48:34 4003
原创 android-刷新之二:PullToRefresh
控件来自Github : chrisbanes/Android-PullToRefresh支持以下控件的上下拉刷新加载: ListView ExpandableListView GridView WebView ScrollView HorizontalScrollView ViewPager控件在2013年2月已经不再维护,所以使用上不能直接使用library dependency来
2017-05-11 11:09:30 555
原创 Android-解析xml:pull
Android内置的Pull解析器XmlPull和Sax类似,是基于流(stream)操作文件,然后根据节点事件回调开发者编写的处理程序。因为是基于流的处理,因此Xmlpull和 Sax都比较节约内存资源,不会象Dom那样要把所有节点以对橡树的形式展现在内存中。 但Xmlpull比Sax更简明,而且不需要扫描完整个流。对象的种类 Document 整个xml文档对象 Elemen
2017-05-11 09:41:12 562
原创 Android-刷新之一:SwipeRefreshLayout
介绍之前,先来看一下SwipeRefreshLayout实现的下拉刷新效果图。从图中可以看到,①下拉到了一定的高度才会进行刷新,高度不够就会回收上去,②正在刷新过程中,继续下拉没反应,说明刷新时屏蔽掉了下拉事件。类的关系:package android.support.v4.widget;public class SwipeRefreshLayout extends ViewGroup implem
2017-05-10 23:48:00 1116
原创 Android-混淆
代码混淆的作用1.减小APK的体积 2.增加反编译后的阅读困难度(注:代码混淆并不能防止反编译)。Android 混淆原则:反射用到的类不混淆 JNI方法不混淆 AndroidMainfest中的类不混淆,四大组件和Application的子类和Framework层下所有的类默认不会进行混淆 Parcelable的子类和Creator静态成员变量不混淆,否则会产生android.os.Bad
2017-05-10 17:16:10 365
原创 Android-应用程序版本号的修改
Android studio注意:修改Application Id可以将同一个应用(Application Id不同)同时安装在同一个手机上。eclipse
2017-05-10 16:52:41 1567
原创 Android-签名
Android Studioandroid studio生成签名导打包的方法 Android Studio系列-签名打包eclipseEclipse如何打包签名APKAndroid:应用程序签名总结
2017-05-10 16:37:59 411
原创 博客导航
弹框:弹窗之一: dialogFragment的使用 弹窗之二:PopupWindow的使用弹窗之三:自定义Dialog弹框之四:activity 异步:Java四种线程池的使用解析json:Android-Gson+GsonFormat的导入 Android-json解析(一):Gson的使用 And
2017-05-10 14:35:11 448
原创 Android-json解析(三):原生JSONObject+JSONArray的解析、遍历及生成等
一、JSONObject和JSONArray的数据表示形式JSONObject的数据是用 { } 来表示的,例如: { &amp;amp;amp;amp;amp;amp;amp;amp;quot;id&amp;amp;amp;amp;amp;amp;amp;amp;quot; : &amp;amp;amp;amp;amp;amp;amp;amp;quot;123&amp;amp;amp;amp;amp;amp;amp;amp;quot;,
2017-05-10 13:06:18 32878 11
原创 Android-json解析(二):Jackson的使用
Jackson的使用:1、导入依赖compile 'com.fasterxml.jackson.core:jackson-databind:2.9.0.pr3'compile 'com.fasterxml.jackson.core:jackson-core:2.9.0.pr3'compile 'com.fasterxml.jackson.core:jackson-annotations:2.9.
2017-05-10 11:27:36 7532
原创 Android-json解析(一):Gson的使用
参考: 超好用的json解析工具——Gson项目使用介绍 JAVA_Gson解析json工具类封装Gson工具类:package com.example.administrator.gsondemo;import com.google.gson.Gson;import com.google.gson.JsonArray;import com.google.gson.JsonElement;
2017-05-09 18:01:19 1227
原创 Android-Activity、Window、View之间的关系
Activity 可以说是应用程序的载体(也可以理解为界面的载体,但是不界面),用户能够在上面绘制界面(Activity本身不绘制界面),并提供用户处理事件的API,维护应用程序的生命周期(Android应用程序是由多个 Activity 堆积而成,而各个 Activity 又有其独立的生命周期)。Activity内部组合了一个Window(这是一个抽象类,具体是PhoneWindow)对象。我们自
2017-05-09 16:49:04 595
原创 Android-LayoutInflater.inflate
获得 LayoutInflater 实例的三种方式//获得 LayoutInflater 实例的三种方式://三种方式本质是相同的,最终本质是都是调用的Context.getSystemService()。 LayoutInflater inflater1 = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFL
2017-05-09 16:24:56 284
原创 Android-Gson+GsonFormat的导入
参考:GsonFormat的使用gson的相关类一、Android Studio快速添加Gson1、File->Project Structure: 2、app->Dependencies->”+”: 3、“+”->Library dependency: 4、往下拉找到GSON(…..): 2017.10.25查看github地址 最新版本 compile 'com.google.c
2017-05-09 09:54:35 2404
原创 Android-PackageManager与startActivity启动第三方应用的Activity
java代码:package com.example.administrator.mydb;import android.app.Activity;import android.content.ComponentName;import android.content.Intent;import android.content.pm.ApplicationInfo;import android
2017-05-08 17:40:45 2174
原创 UUID与获取随机验证码
UUID是Universally Unique Identifier的缩写,它是在一定的范围内(从特定的名字空间到全球)唯一的机器生成的标识符。 public static void main(String[] args) { //获得六位验证码(包括小写字母和数字,不包括大写字母)// String result = UUID.randomUUID().toS
2017-05-08 16:09:28 2397 2
原创 IntelliJ IDEA创建main等快捷方法
1、main方法:键入psvm, 也就是public static void main的首字母。然后enter。2、for循环键入fori,enter即可。3、输出函数:如何像写一个System.out.println();就是sout参考:IntelliJ 创建main函数快捷
2017-05-08 15:03:24 15004 1
原创 Android-获取日期时间Calendar与date
注意:h:12小时制小时数 H:24小时制小时数import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;/** * Created by Administrato
2017-05-08 14:50:51 932
原创 Android-DiskLruCache
参考:[三分钟学会缓存工具DiskLruCache]:(http://blog.csdn.net/u012702547/article/details/47276385):基础使用 Android DiskLruCache完全解析,硬盘缓存的最佳方案:多图片下载setTag避免乱序,退出程序取消所有下载任务,LruCache和DiskLruCache的结合使用。简介:DiskLruCache是一个十
2017-05-08 10:15:10 2324
原创 Java - 线程池
Java通过Executors提供四种线程池,分别为: newCachedThreadPool 创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。 newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务
2017-05-06 01:44:22 966
原创 Android-获取手机上的图片、视频、音频
ContentResolver query 的参数:public final Cursor query (Uri uri, String[] projection,String selection,String[] selectionArgs, String sortOrder)Uri :Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;//
2017-05-05 17:39:08 3584
android studio (as)主题theme
2018-10-08
android反编译工具
2018-06-04
httpClient4.5.3+Jsoup1.10.2
2018-02-23
httpclient-4.5.3完整jar包
2018-02-23
decp2 dbutils pool2 mysql
2016-11-15
android studio 安装插件gsonformat 出现timeout
2018-03-30
求解输出??并解析~谢谢。
2016-03-13
java问题~数字判断!~~~~~
2016-03-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人