
Android
文章平均质量分 51
shaomingshan_
这个作者很懒,什么都没留下…
展开
-
关于Android中Activity之间socket传递的问题
众所周知,一个Android程序如果需要和服务器建立socket通信的话,在每个activity中都新建socket与服务器连接是非常不便的,那么我们就需要在各个activity之间传递socket,这样只需要和服务器建立一次连接就可以了。下面博主将自己学习的过程和走过的弯路分享出来供大家参考。 一、通过Intent传递类对象 首先声明,该方法是不能实现socket传递的,下面会介绍原因原创 2016-04-13 00:50:59 · 4197 阅读 · 1 评论 -
Android SQLite使用详解和多线程并发访问
Android中数据持久化技术包括文件存储、SharedPreferences以及数据库存储,对于大量复杂的关系型数据,数据库无疑是最合适的选择。SQLite是一个轻量级的关系型数据库,运算速度快,占用资源少,适合在移动设备上使用。SQLite不仅支持SQL语法,还遵循数据库的ACID事务,使得本地持久化产生了质的飞跃。首先我们创建类继承SQliteOpenHelper抽象类,重写onCreate...原创 2018-06-15 05:05:37 · 6047 阅读 · 0 评论 -
Android自定义Toolbar以及设置圆形导航图标
我们希望可以自定义Toolbar,实现一些特定的功能,android.support.v7.widget.Toolbar正好完成这些工作首先看一下我们预期的效果图:先看一下Toolbar的布局<android.support.design.widget.AppBarLayout android:id="@+id/app_bar_layout" android:layout_w...原创 2018-06-15 04:04:31 · 5645 阅读 · 8 评论 -
Android DrawerLayout和NavigationView
Android DrawerLayout是一个实现侧滑非常好用的布局,使用也非常简单,DrawerLayout默认效果如下:我们可以看到默认效果是菜单覆盖在主页面上,这里我们希望实现qq的侧滑内容跟随向右移动效果,思路也非常简单,只需要在setDrawerListener中设置主页面的布局位置即可。首先看布局文件,我们在activity_main.xml中用一个DrawerLayout作为父布局,...原创 2018-06-15 03:40:31 · 533 阅读 · 0 评论 -
Android OKHttp3的使用和下载/上传图片
一、OKHttp3简介OKHttp是一个处理网络请求的轻量级开源框架,由移动支付Square公司贡献,用于替代HttpUriConnection和Apache HTTPClient,进行http请求,从Android 4.4 开始HttpUrlConnection底层实现采用OKHttp,而HttpClient已经废弃,并且在Android 6.0 API 23 后已被移除。GitHub:http...原创 2018-06-15 02:51:56 · 12878 阅读 · 2 评论 -
Android子线程更新UI及安全终止线程方法
众所周知,Android主线程需要一直更新UI,否则会造成画面卡顿,所以API 9以后的版本中是不允许在主线程进行网络操作的,否则会抛NetworkOnMainThreadException异常。基于这种情况,我们通常新建一个线程进行网络请求,比如一个如下的匿名类:new Thread(new Runnable() { @Override public void run() {...原创 2018-06-15 02:02:41 · 1228 阅读 · 0 评论 -
Android动态权限申请
Android 6.0以上,即API 23以上,引入了动态权限申请,其中普通权限只需在AndroidManifest.xml中处理即可,而特殊权限不仅要在AndroidManifest.xml中申请,还需要在代码中动态申请。普通权限如下:android.permission.ACCESS_LOCATION_EXTRA_COMMANDSandroid.permission.ACCESS_NETWO...原创 2018-06-15 01:29:11 · 387 阅读 · 0 评论 -
Android MD5加密
概述在网络中传输明文是一件非常危险的事情,所以通常将密码加密后传至服务器,由服务器保存密文在登录判定时只需比较密文是否相同即可。MD5加密是一种常用的加密算法,全称为“Message-Digest Algorithm 5”,即消息摘要算法,由MD2、MD3、MD4演变过来的,是一种单向加密算法,是一种不可逆的加密方式MD5优点:压缩性:任意长度的数据,算出的MD5值长度都是固定的。容易计算:从原数...原创 2018-06-14 09:11:44 · 24421 阅读 · 0 评论 -
Android SharedPreferences保存登录状态
SharedPreferences是Android中一种数据持久化方法SharedPreferences sp = getSharedPreferences("login", Context.MODE_PRIVATE); sp.edit() .putString("sid...原创 2018-06-14 10:27:54 · 9229 阅读 · 1 评论 -
Android JNI调用c语言加密程序
在这篇博客中,我将利用NDK调用JNI来使用本地c语言实现的一个简单的加密程序,主要是为了熟悉NDK和JNI的使用方法,希望可以让后来人少踩一些坑。系统环境:Android Studio 2.3.3 jdk1.8.0 android-ndk-r14b-windows-x86_64配置NDK环境下载NDK和配置环境变量在此不做赘述,不会的可以自行百度 在Android Studio中File–>原创 2018-01-07 16:46:13 · 1082 阅读 · 0 评论 -
Android中利用Matrix实现图片平移、缩放和旋转
Android中提供了drawBitmap(Bitmap bitmap, Matrix matrix, Paint paint)方法,可以传入Matrix对象实现对图片的各种操作。 Matrix的操作,总共分为translate(平移),rotate(旋转),scale(缩放)和skew(倾斜)四种,每一种变换在Android的API里都提供了set, post和pre三种操作方式,除了trans原创 2016-05-06 22:46:06 · 4032 阅读 · 0 评论 -
Android权限
访问登记属性android.permission.ACCESS_CHECKIN_PROPERTIES ,读取或写入登记check-in数据库属性表的权限获取错略位置android.permission.ACCESS_COARSE_LOCATION,通过WiFi或移动基站的方式获取用户错略的经纬度信息,定位精度大概误差在30~1500米获取精确位置原创 2016-04-10 12:56:57 · 362 阅读 · 0 评论 -
Socket通信BufferedWrite
写入数据的代码:....bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF-8")); bw.write("it's a test", 0, 5);....读入数据代码:....br = new BufferedReader(new InputStreamRead原创 2016-04-10 13:05:23 · 434 阅读 · 0 评论 -
Android获取屏幕宽高及状态栏高度的方法
获取屏幕宽度和高度 方法一:WindowManager wm = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);int width = wm.getDefaultDisplay().getWidth(); //屏幕宽度int height = wm.getDefaultDisplay().getHeight(); /原创 2016-05-06 22:56:40 · 1123 阅读 · 0 评论 -
华为手机USB调试与Log
在开发Android的过程中,使用华为手机调试可能遇到找不到设备和无法打印Log的问题。首先确认开启开发者模式,根据型号不同,多数可以通过连续点击【关于手机->版本号】来打开开发者模式,并且启用USB调试。然后在拨号页面输入 *#*#2846579#*#* 进入工程菜单,如下:点击后台设置,依次打开Log并将USB端口设置为Google模式,即可开始USB调试。...原创 2018-06-09 22:16:40 · 2238 阅读 · 0 评论