![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
移动开发
文章平均质量分 93
兔兔西
殿宇的支柱总是彼此分立的,橡树和松柏也不在彼此的阴影下生长
展开
-
【问题解决】eclipse ‘Launching Hello'has encountered a problem
【问题】删除eclipse很多项目后,再次运行某一个项目,就会出现错误:eclipse ‘Launching Hello'has encountered a problem。【解决方案】点此启动此项目。即可。【原因】看网上答案,原来点“run”时是动态更改默认执行的指令的,run按钮自动记录上次的操作,下次点击默认还是执行上个操作。原创 2016-04-28 18:58:40 · 10741 阅读 · 0 评论 -
【问题解决】Replace "..." with ellipsis character (…, &&;#8230;) ?
【问题】在写android的String.xml文件时, 正加载,请稍后...报了一个警告:Replace "..." with ellipsis character (…, &&;#8230;) ?【解决方案】讲【...(3个点)】用【…(省略号)】代替。【原因】大多数人的习惯,一般用三个点来代替省略号。此处提示是要使用省略号:…(在中文原创 2016-05-12 14:59:01 · 2847 阅读 · 0 评论 -
【问题解决】socket ECONNRESET 异常
【问题描述】服务器重启后,一台android设备重新连接网络偶尔出现此问题,2台android设备重新连接总是出现此问题。【问题解决】关闭socket,重新连接,再给服务器发送一个空串。(注:给服务器 发送空串完全是为了重新建立socket连接,不发送无法建立)【问题原因】当服务和客户进程在完成用于 TCP 连接的“三次握手”后,客户 TCP 却发送了一个 RST (复位)原创 2016-07-06 19:00:41 · 9768 阅读 · 1 评论 -
【android学习】断线重连机制
【解决问题】android端连接网络之后,当网络断开连接时,为了提高用户体验,android自动检测网络,当有网络时,用户无需进行多余操作,android端自动重新连接网络。【解决方案】1、设置网络断开连接标志:NET_BAD1)每次发送数据,若发送数据不成功,检测网络状态,若断开则置网络状态为NET_BAD2)若手机网络关闭,则置网络状态为NET_BAD如果网络未连接,做原创 2016-07-27 22:41:07 · 14127 阅读 · 2 评论 -
【问题解决】android开发误删appcompat_v7
一、下载appcompat_v7包二、导入appcompat_v7包三、【右击项目】->【Properties】->【Resource】->【Android】;在Library区域中,删除旧的V7文件。选择新的。然后点击应用原创 2016-09-08 21:47:31 · 2090 阅读 · 0 评论 -
【android学习】检测android主屏,并把app从后台切换置前台
1,需求: 因为项目需求,需要将app永远保持前台运行。 现已实现功能: 1)安装app后,只要到桌面,手持会自动切换到app界面。 2)记录退出界面,再次切换回app后依旧是原来的界面。2,demo:1)开一个线程,用于检测app界面及切换界面。public class Thread_CheckMainInterface extends Thread {原创 2016-12-13 11:58:47 · 3702 阅读 · 0 评论 -
【android学习】保持屏幕常亮
1,在AndroidManifest.xml中添加权限: 2,在activity的onCreate中添加代码: /** * 保持屏幕常亮 */ getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); // 屏幕常亮 其中int flags 各种锁的原创 2016-12-11 10:39:29 · 715 阅读 · 0 评论 -
【android学习】socket传输中,流的关闭
【问题重现】问题1:socket传输中,用流来缓存数据,为了防止内存泄漏以及资源的合理利用,流用完是应该关闭的,但是,一旦关闭流,socket也关闭。即只传输一次,socket就关闭了。问题2:流的关闭太过缓慢,影响用户体验。【问题解决】对于问题1,解决方案有很多。1)每次传输,接受完数据后,关闭流。socket也关闭了。再次使用,重新new新的socket,创建新的连接。这个原创 2016-07-12 15:40:40 · 4688 阅读 · 0 评论 -
【android学习】android端通过socket接收到数据产生乱码
【问题重现】接收到的数据为汉字和字母混合数据,有个别的“�”乱码。【问题原因】1)编码格式转换有问题。经过检查,服务器发送数据使用的是UTF-8格式,android端接收数据也使用的是UTF-8格式来转码。2)数据过大时,分包接收数据,然后转码。2个分包分别将一个汉字的2个字节分开存储。然后每次一个分包进行转码,汉字的一个字节无法识别,转码后表现为乱码。所以乱码多数出现原创 2016-07-12 15:20:18 · 4111 阅读 · 0 评论 -
【android学习】EditText输入监听,小写字母自动转换为大写字母
监听类:public class EditChangedListener implements TextWatcher { private EditText et; public EditChangedListener(EditText et){ this.et = et; } @Override public void beforeTextChanged(CharSequ原创 2016-06-04 11:04:56 · 4065 阅读 · 0 评论 -
【问题解决】eclipse编辑器乱码解决
问题打开编辑器,汉字都是乱码。 主要有两种情况: ①”宸ュ喌涓婃姤”乱码 ②”�����ϱ�”乱码原因出现乱码是因为编码方式不同。比如上传SVN代码的编辑器编码方式为GBK,下载SVN代码的编辑器编码方式为UTF-8,第二种乱码是这样产生的。 第一种乱码产生是因为:UTF-8编码的汉字,以GBK来解码显示的。解决方式选择乱码的部分,右击文件->Properties->Resource->Te原创 2017-03-31 15:29:37 · 5643 阅读 · 0 评论 -
【android学习】WebView(网络视图)
1,概念1)Native app(原生app)i>场景适用企业:游戏、电子杂志、管理应用、物联网等无需经常更新程序框架的APP应用。 B2C开发模式的app。终端用户更期望简单而优良的用户体验。因此,你应该更加注重界面、性能、响应性、易操作性等。如果你的应用能够很方便地调用原生平台特有的一些功能的话,那对用户来说当然是极好的。2)web app(框架APP)i>了解使用浏览器运行;纯Web前端架构原创 2017-01-08 10:58:16 · 2494 阅读 · 0 评论 -
【问题】eclipse创建app时多出appcompat_v7
【解决方案】在新建的时候,选择Minimum Required SDK 和 Compile With版本一致即可解决,创建好app后就没有v7项目生成了。【原因】创建android项目时,在选择android版本号界面,第一个选择支持的最低版本version1。第三个选择的是编译版本version2,当version1这样子创建出项目后自然就会产生出appcompat_v原创 2016-03-31 16:05:53 · 546 阅读 · 0 评论 -
【Android学习】android.view.ViewStub
1,概念ViewStub是一个轻量级的View,它一个看不见的,不占布局位置,占用资源非常小的控件。2,场景运行时动态的根据条件来决定显示哪个View或某个布局。1)对比通常写法把能用到的都写在上面,先把它们的可见性都设置为View.GONE,然后在代码中动态更改它的可见性。优点:逻辑简单而且控制起来比较灵活。 缺点:耗费资源。虽然把View的初始可见View.GONE但是在Inflate布局的时原创 2017-09-18 09:13:01 · 596 阅读 · 0 评论 -
【Android学习】DVM——apk生成、安装、启动、反汇编
1,Android代码执行过程1)Dalvik字节码Android平台不用JVM来执行代码,而是把应用编译成Dalvik字节码,使用Dalvik虚拟机来执行。最终应用只包含Dalvik字节码。过程:Java代码 –(编译成)–> Java字节码 –(dex编译器:dx,SDK工具 编译成)Dalvik字节码。最后获得结果位:classes.dex。通过反编译classes.dex即可得到java源代原创 2017-09-15 10:40:59 · 1528 阅读 · 4 评论 -
【Android学习】spinner列表
1,spinner属性1)对spinner的选择事件不需要响应如果需要响应,通过OnItemSelectedListener回调方法实现。Android:entries="@array/languages"表示Spinner的数据集合是从资源数组languages中获取的,languages数组资源定义在values/arrays.xml中:<?xml version="1.0" encoding=原创 2017-05-23 16:45:09 · 638 阅读 · 0 评论 -
【Android学习】Window和WindowManager
1,概念1)Window桌面上类似悬浮窗的东西。 Window抽象类,具体实现是PhoneWindow。Android中所有的视图都是附加在Window上的,Window实际是View的直接管理者。2)WindowManagerWindowManager是外界访问Window的入口。 WindowManager和WindowManagerService的交互是一个IPC过程。3)Activity原创 2017-12-01 17:55:47 · 309 阅读 · 0 评论 -
【Android学习】socket长连接,数据粘包问题
1,问题再现之前的socket连接,都是每次使用的时候,重新new socket。根据实际需求,需要进行长连接,即:socket连接后不断开,每次使用的时候也不重新new新的socket。此时出现新的问题:第一次发送数据还好,第二次接收到的数据出现粘包问题,导致json解析数据无法成功。2,问题解决上网搜了无数帖子,发现socket的粘包问题始终无法避免。最后我们采用了http来进行登录、任务的接收原创 2017-10-08 09:52:26 · 3610 阅读 · 6 评论 -
【Android学习】消息机制Handler
0,概念1)消息机制Handler是Android消息机制的上层接口。2)Handler、MessaegQueue和Loop 一个线程有一个Looper,一个MessageQueue。可以有很多个Handler,发送各自的Message到这个MessageQueue中。3)场景①更新UI 只有主线程可以访问UI。 ②处理消息 ③将任务(耗时任务)切换到某个指...原创 2017-12-04 19:02:01 · 350 阅读 · 0 评论 -
【Android学习】进度条ProgressBar
1,原始进度条1)xml<ProgressBar android:id="@+id/bar" android:layout_width="match_parent" android:layout_height="wrap_content" android:max="100" style="@andro原创 2017-05-24 17:08:46 · 873 阅读 · 0 评论 -
【android学习】Toast(消息弹框)
1,概念Toast默认显示时间有2个:Toast.LENGTH_SHORT和Toast.LENGTH_LONG2,自定义 Toast平时调用:Toast(“this is mainActivity”); 函数:private Toast toast = null; private void Toast(String s){ if (toast != null) {原创 2017-09-02 09:53:59 · 1769 阅读 · 0 评论 -
【Android学习】File文件
1,概念1)存储模式①Context.MODE_PRIVATE默认操作模式,代表该文件是私有数据,只能被本应用本身访问。 写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中,可以使用Context.MODE_APPEND。②Context.MODE_APPEND该模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。③Context.MODE_...原创 2017-12-13 13:31:57 · 738 阅读 · 0 评论 -
【Android学习】动画
1,分类1)View动画①概念对常场景里的对象做图像变换(平移、缩放、旋转、透明度),从而产生动画。是一种渐进式动画。支持自定义。②变换四种变换效果对应Animation的四个子类:TranslateAnimation、ScaleAnimation、RotateAnimation、AlphaAnimation。 可以通过XML定义(可读性好),或者代码动态生成。 ③实现a.动画XML 路径:r原创 2017-11-30 19:00:42 · 291 阅读 · 0 评论 -
【Android学习】线程的其他方式:AsyncTask、IntentService、HandlerThread、ThreadPoolExecutor
1,分类1)用途①主线程处理UI。②子线程(工作线程)处理耗时操作,如网络请求、IO操作等。 从Android3.0开始,网络访问必须在子线程中进行,否则抛出NetworkOnMainThreadException异常。2,Thread3,AsyncTask1)概念底层封装了线程和Handler。 Android中的线程池来自Java,主要通过Executor来派生特定类型的线程池。AsyncT原创 2018-07-27 10:05:24 · 646 阅读 · 0 评论 -
【java学习】进程、线程、程序
1,概念(1)分类①守护线程(Daemon Thread)用户线程可以通过System.exit(status)(status为0时表示正常退出,非0表示非正常退出)来退出JVM。父线程是守护线程子线程默认为守护线程,父线程是用户线程子线程默认为用户线程。父线程在创建子线程后,启动子线程之前,可以调用Thread实例的setDaemon方法来修改线程属性。当没有用户线程...原创 2018-07-27 10:09:47 · 3910 阅读 · 1 评论 -
【Android学习】标题栏titleBar
1,去掉标题栏1)方法一:在清单文件中修改主题activity或application标签中:android:theme=”@android:style/Theme.Light.NoTitleBar2)方法二:使用style在清单文件(manifest.xml)里面:<application android:allowBackup="tr...原创 2017-12-20 18:19:54 · 1671 阅读 · 1 评论 -
【Android学习】XML(Extensible Markup Language,可扩展标记语言)
1,XML(Extensible Markup Language,可扩展标记语言)1)概念W3c组织发布的(该公司也发布了html、CSS、xhtml、html5)。允许用户自定义标签,描述数据关系。2)场景A.保存有关系的数据 B.用作软件配置文件,描述程序模块之间的关系。 比如要求软件启动时,启动什么。3)组成部分①文档说明必有。&amp;amp;amp;amp;amp;amp原创 2017-05-23 11:29:58 · 1229 阅读 · 0 评论 -
【Android学习】Drawable
1,概念Drawable可以在Canvas上进行绘制。 一般用作View的背景来使用。此时Drawable被拉做View的大小。 最常见的颜色和图片都可以是一个Drawable。1)优点使用简单:比自定义View成本低。 占用空间校:非图片类型的Drawable占用空间小,可以减小apk的大小。2)优化①在onDraw最终不用创建新的局部对象。 onDraw被频...原创 2017-11-30 11:14:35 · 461 阅读 · 0 评论 -
【android学习】Fragment和ViewPager
1,概念1)认识fragment是activity的一个界面或一个组成部分,一个activity可以由多个fragment组成,每个Fragment有自己的生命周期、可接收和处理用户事件,避免了activity有太多繁重的代码。 另外,可以根据用户的不同,动态的添加、替换和移除某个fragment。2)生命周期①onAttach(Activity)当fragm...原创 2017-07-17 10:26:28 · 1247 阅读 · 0 评论 -
【Android学习】列表(ListView、RecyclerView)和adapter
1,ListView1)概念①ListView 显示数据的原理: mvc 模式 m:mode 数据 (用 javabean 规范封装) v:view ListView c:adapter 适配器, 负责把数据展示到 ListView 上2)实现①显示数据的步骤创建 ListView-&amp;gt;MAdapter extends BaseAdapter-&amp;gt; ...原创 2017-05-22 22:01:50 · 1957 阅读 · 0 评论 -
【android学习】Dialog对话框
1,Dialog1)onCreateDialog(int)2)showDialog(int)第一次请求时,会从Activity中调用onCreateDialog。3)onPrepareDialog(int,Dialog)在每次打开对话框时被调用。4)dismissDialog(int)关闭对话框时,可以调用dismiss()。 在Activity中调用...原创 2017-09-04 15:37:10 · 1060 阅读 · 0 评论 -
【Android学习】图片
1,ImageView(图片视图)1)概念ImageView继承自View组件,它的主要功能是用于显示图片,且任何Drawable对象都可使用ImageView来显示。2)属性①--scaleType设置图片的填充方式,相关方法setScaleType(ImageView.ScaleType)ImageView.ScaleType / android:scal...原创 2018-01-15 20:22:27 · 405 阅读 · 0 评论 -
【Android学习】四大组件-Activity
1,概念1)activityactivity是一个用户与应用程序进行交互的接口。 一个activity就是一个单独的界面。2)窗口activity将一个Activity设置成窗口的样式,只需设置Theme。 ①在res/value文件夹下的style.xml文件中加入如下代码:&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;style name=&amp原创 2017-05-21 16:48:46 · 1194 阅读 · 0 评论 -
【Android学习】Android Studio学习
1,安装1)安装Android Studio:下载地址 2)配置JDK、SDK 3)问题:building ‘DM’ Gradle project info 问题原因是Google被墙了Gradle下载太慢。 解决方案: ①关闭Android Studio; ②进入目录C:\Users\L.gradle\wrapper\dists;(L为计算机名) ③删除gradle-4.1...原创 2018-01-05 21:01:13 · 1126 阅读 · 0 评论 -
【android学习】EditText
TextView是EditText父类。1,属性1)输入格式①inputType设置文本的类型,用于帮助输入法显示合适的键盘类型。 android:inputType=&quot;none&quot;//输入普通字符(英语) android:inputType=&quot;text&quot;//输入普通字符(汉字) android:inputType=&quot;tex原创 2018-03-07 13:18:09 · 450 阅读 · 0 评论 -
【Android学习】系统设置SystemMethod
1,获取屏幕宽和高DisplayMetrics dm =getResources().getDisplayMetrics(); int w_screen = dm.widthPixels; //宽度 单位为pxint h_screen = dm.heightPixels; //高度//dm.densityDpi 密度densityDpi 每英寸多少个像素点, density ...原创 2018-03-12 16:18:07 · 225 阅读 · 0 评论 -
【设计模式】观察者模式(Observer Pattern)和“发布者-订阅者”模式(Pub-Sub Pattern)
1,观察者模式(发布(publish )-订阅(Subscribe)模式、模型-视图(View)模式、源-收听者(Listener)模式或从属者模式)1)定义了对象之间的一对多依赖,这样一来当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。2)用途通常被用来实现事件处理系统。 在实际应用中,如果一个事物改变了需要通知另一个事物此时就需要使用观察者来监控3...原创 2018-03-23 14:34:58 · 872 阅读 · 0 评论 -
【Android学习】Android安全机制
1,实现沙箱化1)沙箱对使用者来说是一种安全缓解,对恶意访问者来说是一种限制。2)Android沙箱Android应用通常在一个独立的沙箱种运行,即每一个Android应用程序都在它自己的进程中运行,拥有一个独立的Dalvik虚拟机实例。Android这种基于Linux的进程“沙箱”机制,是整个安全设计的基础之一。 具体而言,进程以隔离的用户环境运行,不能相互干扰,比如发...原创 2018-03-20 15:02:39 · 1232 阅读 · 0 评论 -
【android学习】SharedPreferences详解
1,概念SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置,以XML文件的形式存储的键值对(key-value)数据的数据存储方式保存在 /data/data/PACKAGE_NAME/shared_prefs目录下。2,用处一般用于储存应用的配置等信息。 注意:SharedPreferences文件并不安全,手机root后即可查看其信息,请勿存原创 2017-01-02 21:03:24 · 1293 阅读 · 0 评论 -
【Android学习】Android常用框架
1,缓存1)DiskLruCacheJava实现基于LRU的磁盘缓存。2,图片1)Glide(已使用)①概念图片加载。 Glide 支持拉取,解码和展示视频快照,图片,和GIF动画。②场景适合用在那些对图片依赖不大的App中。2)Android-Universal-Image-Loader图片加载。 已停止维护。3)Pic...原创 2018-04-15 15:14:31 · 2690 阅读 · 0 评论