- 博客(105)
- 资源 (16)
- 收藏
- 关注
原创 彻底搞懂JAVA并发--如何正确的关闭线程?
~~只有系统的学习,解决问题才可以毫不费力~~关注我,一起系统学习! 能否停止运行中的线程? 运行中线程能否强制杀死?答案是不能,JAVA中线程类有stop()、destroy()类似的方法可以停止线程,但是不建议使用,因为如果强制杀死线程会导致线程任务中的无法正常释放,比如文件流不能正常关闭,网络连接不能正常断开等。因此,当线程运行中不要强制打断它,合理的关闭方法是等线程任务执行结束,系统自动释放资源,然后结束。如果是循环执行的线程,需要用到线程通信通知线程停止。...
2021-10-18 21:01:24 435
原创 Android深度性能优化--内存优化(一篇就够)
本文整理自网络课程一、背景在内存管理上,JVM拥有垃圾内存回收的机制,自身会在虚拟机层面自动分配和释放内存,因此不需要像使用C/C++一样在代码中分配和释放某一块内存。Android系统的内存管理类似于JVM,通过new关键字来为对象分配内存,内存的释放由GC来回收。并且Android系统在内存管理上有一个Generational Heap Memory模型,当内存达到某一个阈值时...
2020-03-06 09:49:20 1879
原创 Android深度性能优化--启动优化
应用的启动速度对一个APP来说至关重要,会直接影响到用户体验,如果启动速度过慢会导致用户的流失,本文就启动速度优化分析,为优化启动速度提供一些思路。一、获取启动时间1、adb命令获取启动方式分两种:冷启动和热启动冷启动:应用启动时后台无应用进程,需新创建进程分配给应用,Application会重新创建并执行生命周期;热启动:应用启动时后台已存在应用进程,一般Home键退出...
2020-03-03 13:45:18 946
原创 Android进阶之View体系
1、Android View架构View是Android中所有控件的积累,不管是简单的TextView还是复杂的ListView,它们都有共同的基类就是View。View是一种界面层的空间的一种抽象,它代表了一个控件,除了View,还有ViewGroup,从名字来看是控件组,但是Android中ViewGroup也继承了View,这就意味着View本身可以是单个控件也可以是多个控件组成的一组控
2017-09-13 12:49:22 770 1
原创 getRawX(),getRawY(),getX(),getY(),getScrollX(),getScrollY()区别
1、MotionEvent 中的getRawX(),getRawY(),getX(),getY()getRawX(),getRawY():触摸点相对于屏幕的位置 (像素);getX(),getY():触摸点相对于父View的位置(像素);2、View中的getScrollX(),getScrollY()getScrollX()与getScrollY(
2017-09-11 10:42:49 719
原创 Android进阶之路--启动模式
Android的启动模式是个难点,因为形形色色的启动模式实在是太容易混淆了,但是在项目开发中确十分重要,比如一个APP接收到一条push,点击push打开对应的activity,为了关闭push详情后还继续留在app内,这时候启动模式就会起到作用。启动模式在面试当中也基本是必问的一个问题,所以我们必须搞清楚每个启动模式的作用和原理。 Activity有四种启动模式:standard 、si
2017-07-10 21:42:32 371
原创 Android startActivityForResult()和onActivityResult()的用法
目的: A.java 是主界面,B.java 是子功能模块,要从A启动B,B干完活之后把结果汇报给A先看 A.java 的相关代码//-- A.java --///** 要做两件事情,第一是用 startActivityForResult() 启动B,其次是回收B的结果*///启动BIntent bintent = new Intent(A.
2015-01-07 11:23:34 629
原创 Android自定义布局
2、创建自定义布局类public class TopBar extends RelativeLayout { //自定义控件
2014-12-27 11:07:48 935
原创 linux 学习之60个基本命令
Linux系统信息存放在文件里,文件与普通的公务文件类似。每个文件都有自己的名字、内容、存放地址及其它一些管理信息,如文件的用户、文件的大小等。文件可以是一封信、一个通讯录,或者是程序的源语句、程序的数据,甚至可以包括可执行的程序和其它非正文内容。 Linux文件系统具有良好的结构,系统提供了很多文件处理程序。这里主要介绍常用的文件处理命令。file1.作用
2014-12-09 20:46:55 667
原创 java 常用排序算法
用Java语言实现的各种排序,包括插入排序、冒泡排序、选择排序、Shell排序、快速排序、归并排序、堆排序、SortUtil等。插入排序:package org.rut.util.algorithm.support;import org.rut.util.algorithm.SortUtil;/** * @author treeroot * @since 200
2014-12-09 20:45:56 529
原创 android 常见面试题以及答案
1. 请描述下Activity的生命周期。2. 如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态?3. 如何将一个Activity设置成窗口的样式。(Edited by Sodino)4. 如何退出Activity?如何安全退出已调用多个Activity的Application?5. 请介绍下Android中常用的五种
2014-12-09 20:44:38 961
转载 AndroidAnimation 详细讲解
一、Animations介绍Animations是一个实现android UI界面动画效果的API,Animations提供了一系列的动画效果,可以进行旋转、缩放、淡入淡出等,这些效果可以应用在绝大多数的控件中。 二、Animations的分类Animations从总体上可以分为两大类:1.Tweened Animations:该类Animations提供了旋转、移
2014-11-11 14:14:59 660
转载 Android 应用开发 之通过AsyncTask与ThreadPool(线程池)两种方式异步加载大量数据的分析与对比
在加载大量数据的时候,经常会用到异步加载,所谓异步加载,就是把耗时的工作放到子线程里执行,当数据加载完毕的时候再到主线程进行UI刷新。在数据量非常大的情况下,我们通常会使用两种技术来进行异步加载,一是通过AsyncTask来实现,另一种方式则是通过ThreadPool来实现,今天我们就通过一个例子来讲解和对比这两种实现方式。 本文原创,如需转载,请注明转载地址http://blog.
2014-10-20 16:40:59 962 2
原创 android避免AlarmManager被kill
在Android中,AlarmManager提供了不受休眠状态的系统定时功能,其一般使用方法如下。1、创建一个BroadcastReceiver类的子类,接收定时器事件:public class MyReceiver extends BroadcastReceiver { ...... } 2、在AndroidMenifest.xml中定义上述广播事件接收类的定义:
2014-10-09 20:06:43 3660 1
转载 discuz 论坛安装出现空白页
http://localhost/upload/install/,输入后没有如期出现安装首页,而是空白页。百度无果,只有自己琢磨。 我的环境是用appserv自动安装的,php6,数据库mysql测试了能访问。论坛:Discuz_X3.2_SC_UTF8。最烦人的php.ini配置手动修改,自动安装完之后,也不知道自动的生成的php.ini能不能直接用,还是要开这个选项,关闭那个选项。
2014-07-08 09:02:40 1272
转载 Android 自适应屏幕
以下是Demo首页的预览图一、细说layout_weight目前最为推荐的Android多屏幕自适应解决方案。该属性的作用是决定控件在其父布局中的显示权重,一般用于线性布局中。其值越小,则对应的layout_width或layout_height的优先级就越高,一般横向布局中,决定的是layout_width的优先级;纵向布局中,决定的是layout_height的优先级。传统
2014-06-30 14:01:11 587
原创 利用js调用iframe中父页面/子页面中的JavaScript方法
说明:假设有2个页面,index.html和inner.html。其中index.html中有一个iframe,这个iframe的src指向inner.html。我们现在要做的就是:1.在index.html中调用inner.html上的一个js方法2.在inner.html中调用index.html上的一个js方法实现代码如下:index.html1.2.
2014-05-27 14:49:06 591
原创 反编译apk文件,得到其源代码的方法!!
1.首先找到Android软件安装包中的classes.dex把apk文件改名为.zip,然后解压缩其中的classes.dex文件,它就是java文件编译再通过dx工具打包成的,所以现在我们就用上述提到的2个工具来逆方向导出java源文件2.把classes.dex拷贝到dex2jar.bat所在目录。windows系统下:在命令行模式下定位到dex2jar.bat所在目
2014-04-22 10:26:28 1047 1
转载 传智博客(JavaWeb方面的所有知识)听课记录(经典)
一、 JavaWeb基础第一天:1.Eclipse详解:(1).Bad versionnumber in .class file:编译器版本和运行(JRE)版本不符合。高的JRE版本兼容低版本的编译器版本。 (2).当程序有错误的时候,使用Debug as 运行程序。双击语句设置断点。程序运行到此处停止。点击跳入方法的内部代码。点击跳过,执行下一
2014-04-04 09:39:04 3885 1
原创 struts标签库不能使用时错误
struts的标签库 例如s:form s:text 等不能使用时 错误如Template /template/default/form.ftl not found. 是因为struts.xml文件中配置 theme没有配置正确,应该是不能使
2014-03-24 15:33:15 648
原创 生成android.keystore
按照下面的命令行 在C:\Program Files\Java\jdk1.6.0_07\bin>(jdk的安装目录)目录下(如已配置好环境变量亦可直接输入以下命令,不过生成的文件会在C盘用户的目录下),输入keytool -genkey -alias android.keystore -keyalg RSA -validity 100000 -keystore android.keystore
2014-03-13 22:54:06 937
原创 报错:Link of class 'Lcom/.../PersistentConnectionListener;' failed ...VFY: unable to resolve new-insta
解决方法:检查需要的包是否已经导入,如果包都已经导入的话,就对项目的libs之类的文件夹,也就是放要导入的jar包的文件夹右键->build path->use as source folder这样应该就可以解决问题了,再运行一遍试试吧~
2014-03-13 14:14:36 758
转载 android viewgroup详解(微信5.2滑屏原理)
前言: 虽然本文标题的有点标题党的感觉,但无论如何,通过这篇文章的学习以及你自己的实践认知,写个简单的滑屏小 Demo还是just so so的。 友情提示: 在继续往下面读之前,希望您对以下知识点有一定程度掌握,否则,继续看下去对您意义也不大。 1、掌握View(视图)的"视图坐标"以
2014-03-13 10:25:13 894
转载 深入理解Android中ViewGroup
文章目录[隐藏]一、ViewGroup是什么?二、ViewGroup这个容器2.1 添加View的算法 2.1.1 我们先来分析addViewInner方法:2.1.2 addInArray2.2 移除View2.3 查询三、onFinishInflate四、测量组件五、onLayout六、ViewGroup的绘制。七、效果图片:
2014-03-13 09:52:32 1048
转载 Android Scroller简单用法
Android里Scroller类是为了实现View平滑滚动的一个Helper类。通常在自定义的View时使用,在View中定义一个私有成员mScroller = new Scroller(context)。设置mScroller滚动的位置时,并不会导致View的滚动,通常是用mScroller记录/计算View滚动的位置,再重写View的computeScroll(),完成实际的滚动。
2014-03-13 09:47:53 503
转载 android谈Content Provider的Uri
再谈Content Provider的Uri在上一次学习中,我们谈到了Uri的格式。现在已content://com.wei.android.myproject/card/pin/17为例子,具体解构。1、scheme部分:content://,表明这是个content的Uri,而不是一个http://的网络Uri;2、authority(com.wei.andriod.m
2014-03-12 14:08:03 836
原创 Android屏幕切换处理
不进行屏幕切换 由于某些原因,例如游戏,在切换屏幕的过程中,由于动作慢导致游戏失败,我们希望不触发屏幕切换。我们在AndroidManifest.xml中在activity进行设置: android:screenOrientation="portrait" /> 即使我们在layout-land/补充了相关的layout的xml,也不会触发横屏和竖屏的布局的转换。
2014-03-11 16:35:04 680
转载 android Intent再研究
什么是Intentintent是对一个操作处理的抽象描述。context可以在使用startActivity(intent)来launch一个actvivity,就如我们在学习笔记(七)中的处理,也是最常用的方式,将activity在我们的应用中整合;可以在通过sentBroast(intent)来广播给任何有兴趣的BroadcastReceiver,可以通过startService(in
2014-03-11 15:57:43 599
原创 线程安全Collections.synchronizedList
Collections.synchronizedList引发的线程安全问题 有些容器是线程安全的(Vector,ConcurrentLinkedQueue等),有些则不是(list等),利用类 似 private static List taskQueue = Collections.synchronizedList(new LinkedList(
2014-03-10 14:48:43 645
转载 Android dispatchTouchEvent介绍
一个最简单的屏幕触摸动作触发了一系列Touch事件:ACTION_DOWN->ACTION_MOVE->ACTION_MOVE->ACTION_MOVE...->ACTION_MOVE->ACTION_UP当屏幕中包含一个ViewGroup,而这个ViewGroup又包含一个子view,这个时候android系统如何处理Touch事件呢?到底是 ViewGroup来处理Touch事件,还是
2014-03-10 11:09:13 552
原创 android onNewIntent原理
一、onNewIntent()在IntentActivity中重写下列方法:onCreate onStart onRestart onResume onPause onStop onDestroy onNewIntent1、其他应用发Intent,执行下列方法:onCreateonStartonResume发Intent的方法:
2014-03-10 10:49:26 788
原创 Android下使用正则表达式
匹配ISBN 号(10位或13位数字)做个笔记:if (checkString(editText.getText().toString())) { Toast.makeText(testRegularExpression.this, "匹配成功", Toast.LENGTH_LONG).show(); }else Toast.make
2014-03-10 09:19:39 874
转载 android AsyncTask介绍
AsyncTask和Handler对比1 ) AsyncTask实现的原理,和适用的优缺点AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程.使用的优点:l 简单,快捷l 过程可控 使用的缺点:l
2014-03-10 09:15:21 577
原创 android:inputType参数类型说明
android:inputType参数类型说明android:inputType="none"--输入普通字符android:inputType="text"--输入普通字符android:inputType="textCapCharacters"--输入普通字符android:inputType="textCapWords"--单词首字母大小andro
2014-03-07 09:38:47 739
转载 android开源项目和框架
特效:http://www.androidviews.net/http://www.theultimateandroidlibrary.com/常用效果:1. https://github.com/novoda/ImageLoader 异步加载图片,缓存,生成缩略图, 基本上每个应用都会需要这个lib。 android-query框架2. h
2014-03-07 09:20:42 800
原创 android中mainifest的属性讲解
android:allowTaskReparenting 用法 是否允许activity更换从属的任务,比如从短信息任务 切换到浏览器任务。用来标记Activity能否从启动的Task移动到有着affinity的Task(当这个Task进入到前台时)—— “true”,表示能移动,“false”,表示它必须呆在启动时呆在的那个Task里。 如果这个特性没
2014-03-06 15:04:32 977
转载 ANDROID application详解与用法
1:Application是什么?Application和Activity,Service一样,是android框架的一个系统组件,当android程序启动时系统会创建一个 application对象,用来存储系统的一些信息。通常我们是不需要指定一个Application的,这时系统会自动帮我们创建,如果需要创建自己 的Application,也很简单创建一个类继承 Application
2014-03-06 12:48:56 626
java联系题
2013-09-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人