
Android
文章平均质量分 66
Android 开发,测试
恋恋西风
专业图像处理,CT三维可视化,三维重建,CT后处理,软件开发, 熟悉OpenSSL、VTK、ITK 等第三方库;熟悉C/C++、java、C#,Python。 专注于手术导航系统开发。
展开
-
移动端通信协议选择:json、flatbuf、protobuf、MessagePack
JSON: 1、JSON是纯文本。2、JSON具有良好的自我描述性,便于阅读。如果对性能要求不高,传输数据少,优先选择这个,现在大部分使用的是这个; protobuf: 语言无关、平台无关。即 ProtoBuf 支持 Java、C++、Python 等多种语言,支持多个平台 高效。即比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单 扩展性、...原创 2020-03-03 11:10:44 · 3736 阅读 · 0 评论 -
Android 获取安卓设备的唯一标识码 ID
现存问题:Android 获取设备唯一值,由于 国内rom 不同,一直没有一个 一个稳定的唯一标示。权限<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_WIFI_ST...原创 2020-03-02 18:54:53 · 3274 阅读 · 1 评论 -
android shape的使用 边框
先写drawable里面的xml文件,里面设置shape来设置文本框的特殊效果。原创 2015-08-06 14:39:59 · 1275 阅读 · 1 评论 -
android 提高进程优先级 拍照永不崩溃(闪退)
首先科普一下Android系统进程的优先级;当系统的内存不足时, android系统将根据进程优先级选择杀死一些不太重要的进程. 进程优先级从高到低分别为:1. 前台进程. 以下的进程为前台进程:a. 进程中包含处于前台的正与用户交互的activity;b. 进程中包含与前台activity绑定的service;c. 进程中包含调用了startForeground()方原创 2016-04-18 15:34:44 · 5332 阅读 · 0 评论 -
android 调用地图
有时候我们需要调用地图显示一下位置,这时候可能还需要导航,导航做起来有点麻烦,如果调用第三方的是不是很简单,本文就是写这个来的;第一种方式:android Intent调用地图应用客户端调用百度地图:百度地图包:com.baidu.BaiduMap try { intent = Intent.getIntent("intent://map/原创 2016-05-30 14:14:42 · 2198 阅读 · 1 评论 -
Fragment笔记整理
前言一直在用Fragment,但是没有系统的整理过,Google了一下相关文章,看到了几篇,将几篇还不错的文章重点整理了下,很多是直接Copy的,只为做个笔记,以后翻来看比较方便,建议大家看一下下面几篇,相信会有一些收获的。Android Fragment 真正的完全解析(上)http://blog.youkuaiyun.com/lmj623565791/article/details/379原创 2016-05-31 10:41:07 · 718 阅读 · 1 评论 -
Android插件化开发
客户端开发给人的印象往往是小巧,快速奔跑。但随着产品的发展,目前产生了大量的门户型客户端。功能模块持续集成,开发人员迅速增长。不同的开发小组开发不同的功能模块,甚至还有其他客户端集成进入。能做到功能模块开发和发布的独立,能像Html5一样能帅气的解决bug并动态更新到用户的手机,一直是客户端开发的梦寐以求的特性。一、问题提出 一般的,一个Android应用在开发转载 2016-05-19 10:05:02 · 914 阅读 · 0 评论 -
Android使用Drawable资源之使用ClipDrawable资源 实现进入条
以前我自定义的进度条(就是咱们现在工程中用的)是从android的源码中扒出来的一个XML,然后把里面的图片给替换了。一直不知道它的具体原理是什么。今天得空研究了一下,发现它的原理其实就是用的android提供的一个叫ClipDrawable的类实现的。于是我就继续深入研究ClipDrawable的用法,研究的结果让我很开心,发现这个类可以很容易实现各种自定义进度条的效果。原创 2016-06-06 17:35:44 · 696 阅读 · 1 评论 -
android Tab 类型切换界面
实现方案:viewpager + fragment + FragmentPagerAdapter 效果图:可以左右滑动切换选项卡,或者点击;如果想使用fragment的时候又想可以左右滑动,就可以使用这种方式。主要的部分就在viewpager的适配器。它的适配器继承FragmentPagerAdapter.import java.util.ArrayList;imp原创 2016-04-28 17:36:19 · 1365 阅读 · 0 评论 -
Android将Activity 打 jar包 (解决资源文件不能打包的问题)
转载地址:http://blog.youkuaiyun.com/xiaanming/article/details/9257853最近有一个需要,我们公司做了一个apk客户端,然后其他的公司可以根据自己的需要来替换里面的资源图片,文字等一些资源文件问题,我本来想这个简单,用两个工程直接替换里面的资源文件就行,老大说,这样子不好,如果要改需要改两个客户端,而且还麻烦,叫我将所有的Activity打成Jar包转载 2016-04-28 17:35:40 · 488 阅读 · 0 评论 -
Android popupwindow 弹出的位置问题
在Android开发中,需要用到PopupWindow这个类。在初始化完成,显示之前,都需要获得这个对象的width,height去计算popupWindow弹出的位置。这个时候会发现取得的width和height都是-2;使用popupWindow.getContentView().getMeasuredWidth()和popupWindow.getContentView().getMe原创 2015-12-07 15:09:39 · 1652 阅读 · 0 评论 -
Android 中获取 debug 测试 SHA1 和 release SHA1 证书指纹数据的方法
百度地图开发的时候要申请KEY,需要提供SHA1证书指纹数据Eclipseeclipse中直接查看:windows -> preferance -> android -> build - > Default debug keystore 下面见下图:Android Studio如果使用的是debug.keystoreC:\Users\XX原创 2015-12-09 16:51:58 · 3048 阅读 · 0 评论 -
android EditText 只允许输入指定字符
实现只允许只入数字和字符 方法一:在XML文件中实现布局如下:<EditText android:layout_width="match_parent" android:layout_height="10dp" android:textSize="16sp" android:digits="0123456789qwertzuiopasdfghjkly原创 2016-02-15 16:26:55 · 4862 阅读 · 0 评论 -
android 拍照,裁切,上传圆形头像, 图片等比缩放
最近太忙了,没有空更新博客,其它部分以后再更新;今天给大家分享的是解决解析图片的出现oom的问题,我们可以用BitmapFactory这里的各种Decode方法,如果图片很小的话,不会出现oom,但是当图片很大的时候就要用BitmapFactory.Options这个东东了,Options里主要有两个参数比较重要. options.inJustDecodeBounds原创 2016-02-02 14:07:49 · 1006 阅读 · 1 评论 -
EventBus使用详解(一)——初步使用EventBus
相关文章:1、《EventBus使用详解(一)——初步使用EventBus》2、《EventBus使用详解(二)——EventBus使用进阶》一、概述EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息.优点是开销小,代码更优雅。原创 2016-04-26 14:10:55 · 410 阅读 · 1 评论 -
Android性能优化之:ViewStub
ViewStub是Android布局优化中一个很不错的标签/控件,直接继承自View。虽然Android开发人员基本上都听说过,但是真正用的可能不多。ViewStub可以理解成一个非常轻量级的View,与其他的控件一样,有着自己的属性及特定的方法。当ViewStub使用在布局文件中时,当程序inflate布局文件时,ViewStub本身也会被解析,且占据内存控件,但是与其他控件相比,主要区别体转载 2016-04-27 11:57:49 · 655 阅读 · 1 评论 -
Android PopupWindow 弹窗背景半透明,设置最大高度
首先讲一个网上的方法:popupwindow弹出后,屏幕背景变成半透明这个效果很普通。实现的方法也很多。我使用的可能是最简单的一种,就是设置一下getWindows的透明度。 /** * 设置添加屏幕的背景透明度 1,:全透明;0.5:半透明 0~1,取自己想到的透明度 * @param bgAlpha */原创 2016-04-28 13:44:49 · 8520 阅读 · 0 评论 -
Android studio gradle 环境变量配置
我的 gradle 下载自动解压到了这个目录 C:\Users\jacli\.gradle\wrapper\dists\gradle-2.10-all\a4w5fzrkeut1ox71xslb49gst\gradle-2.101右击“计算机”点击“属性”点击“高级系统设置” 你会看到系统属性2点击“环境变量”在弹出界面下方的分类 “系统变量”这个分类里点击 新建原创 2016-07-16 19:34:39 · 14246 阅读 · 0 评论 -
Android MVP 模式 详解
MVP 简介 Android MVP 模式1 也不是什么新鲜的东西了,我在自己的项目里也普遍地使用了这个设计模式。当项目越来越庞大、复杂,参与的研发人员越来越多的时候,MVP 模式的优势就充分显示出来了。导读:MVP模式是MVC模式在Android上的一种变体,要介绍MVP就得先介绍MVC。在MVC模式中,Activity应该是属于View这一层。而实质上,它既承担了V转载 2016-08-06 23:50:18 · 657 阅读 · 0 评论 -
Android权限之sharedUserId和签名
当设置了这些标志后,这个文件仍然属于自己的应用程序,但是它的全局读/写和读/写权限已经设置,所以其他任何应用程序可以看到它。系统中所有使用android.uid.shared作为共享UID的APK,都会在manifest节点中增加android:sharedUserId="android.uid.shared",然后在Android.mk中增加LOCAL_CERTIFICATE := shared。经过对系统中存在的文件夹的访问测试,这种方式编译出来的APK所在进程的UID为system。原创 2018-06-26 16:00:04 · 856 阅读 · 1 评论 -
解决android studio引用远程仓库无法下载 (JCenter下载慢) 2018.10.19
最总发现 第三方库无法下载必须要找方法,以前提供的很多方法都不好用我看了一下阿里云的,试了一下很好用。记录下,大家共享,这个地址有可能会变化,原来有人提供的阿里云的已经不好用,大家可以去这个地址找正确地址:http://maven.aliyun.com/mvn/view 修改项目根目录下的文件 build.gradle :buildscript { reposito...原创 2018-10-19 16:39:46 · 1469 阅读 · 0 评论 -
android项目app中引用不到module下的jar包问题
在module中导入了***.jar或者在线的包,在app中如果想引用这个jar里相关的内容时,发现根本引用不到,会提示你add library/*****.jar 一大串,你回车一下或者点一下没反应,根本没有用。只需把module下gradle里相关jar的implementation改为api即可,因为implementation 修饰的只能在当前module中引用,你在app下是引用不了...转载 2018-11-20 16:46:36 · 863 阅读 · 0 评论 -
解决:使用 rxandroid jar 包出现“java.lang.NoClassDefFoundError:io.reactivex.Flowable”的异常问题
最近要在 使用RxJava2,因为要使用 aar 包,但导入的在线包又太多,所以使用 jar 包方式 ,在导入RxJava 2.0.1 和RxAndroid 2.0.1的jar包后, 使用subscribeOn和observOn的切换线程的时候,没法使用。错误信息: FATAL EXCEPTION:main Process: com.xxx.xxxx, PID: 12345 j...原创 2019-01-04 17:40:38 · 2926 阅读 · 0 评论 -
Android studio 导出 aar、jar , 多个 jar 包打成一个
现在普遍AndroidStuido开发,这里一步一步详加介绍AS项目打包成j arr 见:https://blog.youkuaiyun.com/q610098308/article/details/51693708如果要打出jar 包,可以使用 gradle 脚本实现module gradle.build ,android {}中添加下面脚本 task deleteOld...原创 2019-05-27 16:56:14 · 1729 阅读 · 2 评论 -
开源整理:Android App新手指引开源控件
开源整理:Android App新手指引开源控件 一个App第一次与用户接触或者发生大版本更新时,常常会用户进行新手引导,而一个好的新手指引,往往能够方便新用户快速了解操作你的应用功能。新手指引的重要性,不言而喻。本文搜集整理了Github上一些效果不错的新手指引开源控件,帮助你的应用在用户面前有更好的效果展示。当然,如果你有精力,也可以自己开发维护一套新手指引效...转载 2018-02-08 18:06:47 · 334 阅读 · 0 评论 -
Android 开发框架 MVVM 小试
什么是MVVM , 为什么需要MVVM?MVVM是Model-View-ViewModel的简写. 它是有三个部分组成:Model、View、ViewModel。Model:数据模型层。包含业务逻辑和校验逻辑。View:屏幕上显示的UI界面(layout、views)。ViewModel:View和Model之间的链接桥梁,处理视图逻辑。MVVM架构图如下:MVVM架构原创 2017-04-28 12:59:46 · 1132 阅读 · 0 评论 -
Retrofit 多种提交方式 表单提交、多文件上传
奉上源码 - MvpApp,如果发现那里写的不对的,请好心人直接指出,我会努力去改正的。主要包括: 简单的 get post请求、统一请求头处理、统一请求体处理、单文件上传、多文件上传、一个key对用多个文件、支持String转换器 不强制使用Gson转换器、使用介绍 - get请求路径替换(1) 路径替换主域名 http://api.qianguan转载 2016-10-17 11:57:08 · 7422 阅读 · 0 评论 -
关于Android6.0权限管理 动态注册
在Android开发过程中,拍照是很常见的功能。然而拍照要用到读写SD卡权限。但原来的程序会在android6.0后可能出现崩溃的情况或其它异常,原因是Android6.0,推出了动态权限管理。原来只需要将用到的权限写在清单文件中,用户安装了该程序,程序在运行过程中都会获得相应权限。android6.0后,对于一些特别敏感的权限,开发者必须在程序中进行声明。 权限管理1. 首先原创 2016-10-03 18:44:54 · 897 阅读 · 0 评论 -
Android 设计模式之MVC模式
说到Android设计模式的MVC模式,估计很多人都是比较熟悉了,这里深入了解一下MVC到底是怎么回事,以ListView为例子讲解。一、深入理解MVC概念 MVC即Model-View-Controller。M:逻辑模型,V:视图模型,C:控制器。 MVC模式下,系统框架的类库被划分为3种:模型(Model)、视图(View)、控制器(Controller)。模型对象负责建立数据转载 2016-11-14 00:09:47 · 853 阅读 · 0 评论 -
DragSortListView:可拖动排序的listview
这是一个针对技术开发者的一个应用,你可以在掘金上获取最新最优质的技术干货,不仅仅是Android知识、前端、后端以至于产品和设计都有涉猎,想成为全栈工程师的朋友不要错过!DragSortListView是一个可以实现拖动排序的listview控件,是我看到的交互较为复杂的开源代码中不管是代码质量还是流畅性都最好的。虽然作者已经不再更新其版本,但是仍然非常值得我们去研究,尤其是那些本身需要这种效转载 2017-09-05 18:04:25 · 1014 阅读 · 0 评论 -
Android强大log框架Logger使用详解
log信息是开发中最最重要的部分,那么如何更好的捕获信息呢?接下来就让我们了解一下强大的log框架–Logger。什么是logger?是一个简单,漂亮,强大的Android开源日志工具,代码托管在github上 项目地址 https://github.com/orhanobut/logger亮点?能够提供: 线程信息:log在哪个线程类信息:log在哪个类方法信转载 2017-12-22 15:24:44 · 3662 阅读 · 0 评论 -
Android 粘性广播StickyBroadcast的使用
Android广播的分类:1、 普通广播:这种广播可以依次传递给各个处理器去处理2、 有序广播:这种广播在处理器端的处理顺序是按照处理器的不同优先级来区分的,高优先级的处理器会优先截获这个消息,并且可以将这个消息删除3、 粘性消息:粘性消息在发送后就一直存在于系统的消息容器里面,等待对应的处理器去处理,如果暂时没有处理器处理这个消息则一直在消息容器里面处于等待状态,粘性广播的Recei原创 2017-12-25 16:00:15 · 1777 阅读 · 1 评论 -
Retrofit2.0 OkHttp如何自动加载Cookie 持久化
今天给大家分享Retrofit2.0 OkHttp如何自动加载Cookie; Retrofit,话说Retrofit最近真的很火啊,Retrofit+OKHttp现在似乎已经成为了Android网络请求框架的主流框架了吧,大家以前用的可能是XUtils框架,个人感觉也不错,也更新到了Xutils3,但是Retrofit是Square出的, 所以一定要学习一下。持久化Cookie今天要讲原创 2016-09-01 19:26:14 · 3217 阅读 · 0 评论 -
android 解决ScrollView嵌套ListView的问题,不能全屏,全屏不能显示下面控件
在开发中遇到ScrollView嵌套ListView的问题,最开始发出不能全屏,效果是这样的;但我想要的效果是这样的:下面看一下布局文件:<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" an原创 2015-12-18 09:38:06 · 4042 阅读 · 0 评论 -
android UI 操作 不要在子线程中操作UI
不管是android ,还是 ios ,请不要在子线程中操作UI,有时有些崩溃,从报错上看不出什么原因,就有可能是子线程操作了UI;切记,切记!原创 2015-06-03 14:43:14 · 827 阅读 · 0 评论 -
android sqlite中判断某个表是否存在
<span style="font-size:18px;">sqlite 中判断某个表是否存在的方法,贴出来供大家参考/** * 判断某张表是否存在 * @param tabName 表名 * @return */ public boolean tabbleIsExist(String tableName){ ...转载 2015-07-08 15:08:16 · 2340 阅读 · 0 评论 -
android webview 简单应用
一直没有用过webView 在网上找了一个小例子,主要实现以下功能:1、当webview加载网页的时候在标题栏上显示加载进度2、隐藏webkit浏览器的地址栏3、设置程序的标题为网页的标题4、创建菜单代码:package com.mywebview;import android.os.Bundle;import android.app.Activity;impo原创 2015-07-10 10:18:10 · 571 阅读 · 0 评论 -
讯飞语音合成 简单使用
最近用到了,讯飞语音,所以简单给大家介绍一下怎么加入语音朗读; Step 1: 首先你需要申请一个 appid,去讯申请吧; Step 2: 按照文档导入sdk,加入权限; Step 3: 初始化sdk;...原创 2015-06-12 18:21:43 · 23580 阅读 · 0 评论 -
关于 android屏幕适配
一、关于布局适配1、不要使用绝对布局2、尽量使用match_parent 而不是fill_parent 。3、能够使用权重的地方尽量使用权重(android:layout_weight)4、如果是纯色背景,尽量使用android的shape 自定义。5、如果需要在特定分辨率下适配,可以在res目录上新建layout-HxW.xml的文件夹。比如要适配1080*1800的屏幕(魅转载 2015-04-21 09:31:34 · 618 阅读 · 0 评论 -
Android 使用 Application 简单介绍
Application 配置全局Context第一步、写一个全局的单例模式的MyApplication继承自Application 覆盖onCreate ,在这个方法里面实例化Application第二步、配置全局的Context第三步、使用,使用的时候用的时候根据类的名称访问ContextAndroid程序的入口点Android使用Google Dalvik VM,相对于转载 2015-04-23 10:16:45 · 792 阅读 · 0 评论