android
SpencerHale
return Math.pow(Math.pow(x * size, 2) + Math.pow(y * 2*size, 2) - 1, 3) - Math.pow(x * size, 2) * Math.pow(y * 2*size, 3) <= 0;
展开
-
将两个或多个应用放到同一个进程的方法
1、在里面添加:android:sharedUserId,注意这个属性的取值必须包含点(dot),也就是诸如java package的形式。比如com.aaa.bbb。没有dot的话,将来adb installxxx.apk就会出错:Failure [INSTALL_PARSE_FAILED_BAD_SHARED_USER_ID]。2、在里面添加:android:share原创 2017-02-25 12:29:50 · 1455 阅读 · 0 评论 -
对StrongReference,WeakReference,SoftReference和PhantomReference的认识
1、强引用(StrongReference):就是在代码中普遍存在的,类似Object obj = new Object( )这类的引用,只要强引用还存在,GC永远不会回收掉被引用的对象。2、软引用(SoftReference):用来描述一些还有用但非必须的对象。对于软引用关联着的对象,在系统将要发生内存溢出异常时,将会把这些对象列入回收范围之中进行第二次回收。如果这次回收还没有足够的内存原创 2017-03-20 14:47:48 · 407 阅读 · 0 评论 -
aar和jar的区别
1、“aar”包是Android的类库项目的二进制发行包。文件扩展名是.aar,maven项目类型应该也是aar,但文件本身是带有以下各项的zip文件:/AndroidManifest.xml (mandatory)/classes.jar (mandatory)/res/ (mandatory)/R.txt (mandatory)/assets/ (optional)原创 2017-03-20 15:04:38 · 908 阅读 · 0 评论 -
避免和解决ANR的方法
ANR:Application Not Responding,即应用无响应。ANR一般有三种类型:1:KeyDispatchTimeout(5 seconds) –主要类型按键或触摸事件在特定时间内无响应2:BroadcastTimeout(10 seconds)BroadcastReceiver在特定时间内无法处理完成3:ServiceTimeout(20 seconds原创 2017-03-20 15:11:40 · 662 阅读 · 0 评论 -
解决一个八阿哥bug的方法
1.看Log日志2.Log解决不了就断点调试3.如果debug不行就在异常代码的附近逐一输出Log,看结果4.找问题,找思路。如果是技术瓶颈,就百度、google、同事交流、QQ群等。原创 2017-03-20 15:15:49 · 769 阅读 · 0 评论 -
Android下检测和定位内存泄露的方法
Android内存泄漏指的是进程中某些对象(垃圾对象)已经没有使用价值了,但是它们却可以直接或间接地引用到gcroots导致无法被GC回收。无用的对象占据着内存空间,使得实际可使用内存变小,形象地说法就是内存泄漏了。一、场景:1、类的静态变量持有大数据对象2、静态变量长期维持到大数据对象的引用,阻止垃圾回收3、非静态内部类的静态实例4、非静态内部类会维持一个到外部类实例的引用,原创 2017-03-20 15:23:26 · 826 阅读 · 0 评论 -
申请Android应用内存的方法
先看机器的内存限制,在/system/build.prop文件中:dalvik.vm.heapsize=128mdalvik.vm.heapgrowthlimit=64m这里,heapgrowthlimit就是一个普通应用的内存限制,用ActivityManager.getLargeMemoryClass()获得的值就是这个。而heapsize是在manifest中设置了large原创 2017-03-20 15:25:06 · 1050 阅读 · 0 评论 -
缩减APK包大小的方法
1.代码保持良好的编程习惯,不要重复或者不用的代码,谨.添加libs,移除使用不到的libs。使用proguard混淆代码,它会对不用的代码做优化,并且混淆后也能够减少安装包的大小。native code的部分,大多数情况下只需要支持armabi与x86的架构即可。如果非必须,可以考虑拿掉x86的部分。2.资源使用Lint工具查找没有使用到的资源。去除不使用的图片,String原创 2017-03-20 15:28:45 · 701 阅读 · 0 评论 -
Android下需注意的安全问题
1.错误导出组件2.参数校验不严3.WebView引入各种安全问题,webview中的js注入4.不混淆、不防二次打包5.明文存储关键信息6.错误使用HTTPS7.滥用权限、内存泄露、使用debug签名原创 2017-03-20 15:34:29 · 254 阅读 · 0 评论 -
Android与服务器交互方式中的对称加密和非对称加密
对称加密:加密和解密数据都是使用同一个key,这方面的算法有DES。非对称加密:加密和解密是使用不同的key。发送数据之前要先和服务端约定生成公钥和私钥,使用公钥加密的数据可以用私钥解密,反之。这方面的算法有RSA。ssh和ssl都是典型的非对称加密。原创 2017-03-20 15:36:18 · 397 阅读 · 0 评论 -
AndroidStudio下ButterKnife的集成和使用
一、集成1、在project的级别的builde文件中加上 dependencies { ... classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' ... } 2、在module级别的build文件上加上 applypl原创 2017-03-20 16:06:14 · 399 阅读 · 0 评论 -
Activity生命周期,启动模式LaunchMode,碎片Fragment,Intent跳转传递
一、Activity生命周期(启动模式为默认的情况) startActivity主要可以让目标界面入栈(移到栈顶) 导致:当前的Activity进入stop状态,目标界面将会从onCreate-->onStart-->onResume-->运行 返回键或者finish,会导致当前的Activity出栈(onPause-->onSto原创 2017-03-20 16:47:58 · 948 阅读 · 0 评论 -
属性动画绘制者Animator和自定义View
一、属性动画1.Animator 3.0之后的api,如果要在3.0之前使用需要导入NineOldAndroids。 2.ObjectAnimator 改变对象(Object)的属性,需要目标对象中对属性有get/set的方法。 如: //可以帮助视图修改显示宽度,以及显示高度的类型 class V原创 2017-03-20 17:02:13 · 464 阅读 · 0 评论 -
转 Android开发常用开源框架
Android开发常用开源框架——转自Android开发者JackChan转载 2017-07-30 13:33:07 · 499 阅读 · 0 评论 -
Bitmap的优化方式
Bitmap是android中经常使用的一个类,它代表了一个图片资源。Bitmap消耗内存很严重,如果不注意优化代码,经常会出现OOM问题,优化方式通常有这么几种:1. 使用缓存;2. 压缩图片;3. 及时回收;至于什么时候需要手动调用recycle,这就看具体场景了,原则是当我们不再使用Bitmap时,需要回收之。另外,我们需要注意,2.3之前Bitmap对象与像素数原创 2017-03-20 14:44:20 · 279 阅读 · 0 评论 -
显示一张超高清图片/长图且不失真的方法
1、通过计算BitmapFactory.Options对象的inSamleSize值等比的压缩图片;2、使用WebView来加载图片;3、使用MapView或者TileView来显示图片(类似地图的机制);4、BitmapRegionDecoder局部加载(不过响应用户手势加载不同区域是个难点)。原创 2017-03-20 14:42:09 · 2323 阅读 · 0 评论 -
优化ListView以提升流畅度
1.Item布局,层级越少越好,使用hierarchyview工具查看优化2.复用convertView,使用ViewHolder3.item中有图片时,异步加载4.快速滑动时,不加载图片5.item中有图片时,应对图片进行适当压缩6.实现数据的分页加载。原创 2017-03-19 22:35:51 · 328 阅读 · 0 评论 -
自定义view的基本流程
1、自定义View的属性编写attr.xml文件2、在layout布局文件中引用,同时引用命名空间3、在View的构造方法中获得我们自定义的属性,在自定义控件中进行读取(构造方法拿到attr.xml文件值)4、重写onMesure(如果自定义ViewGroup还要重写onLayout)5、重写onDraw(如果自定义ViewGroup可以不用重写该项)。原创 2017-03-19 22:52:57 · 454 阅读 · 0 评论 -
Android下解决滑动冲突的常见思路
相关的滑动组件重写onInterceptTouchEvent,然后判断根据xy值,来决定是否要拦截当前操作。原创 2017-03-19 22:56:31 · 513 阅读 · 0 评论 -
Android下多分辨率适配的5种方法
1.根据不同分辨率建立不同的布局文件2.根据分辨率不同建立不同分辨率的资源图片3.在程序启动时,获取当前屏幕的分辨率和密度,在代码中进行适配4.为不同分辨率的写不同的dimen文件5.使用fragement。原创 2017-03-19 23:00:54 · 578 阅读 · 0 评论 -
微信切换界面延时加载的实现方法是优化ViewPager中加载Fragment
用fragment中的setUserVisibleHint这个方法即可。private boolean hasLoadedOnce = false; //your boolean field@Overridepublic void setUserVisibleHint(booleanisVisibleToUser) {super.setUserVisibleHint(i原创 2017-03-19 23:11:39 · 344 阅读 · 0 评论 -
Android多线程的实现方式
Thread & AsyncTask。Thread 可以与Loop和Handler共用建立消息处理队列。AsyncTask可以作为线程池并行处理多任务。原创 2017-03-19 23:23:01 · 320 阅读 · 0 评论 -
AsyncTask的内部实现和适用场景
AsyncTask内部也是由Handler机制来完成的,只不过Android提供了执行框架来提供线程池来执行相应地任务,因为线程池的大小问题,所以AsyncTask只应该用来执行耗时时间较短的任务,比如HTTP请求,大规模的下载和数据库的更改不适用于AsyncTask,因为会导致线程池堵塞,没有线程来执行其他的任务,导致的情形是会发生AsyncTask根本执行不了的问题。原创 2017-03-19 23:33:56 · 504 阅读 · 0 评论 -
Service的onCreate回调是否在UI线程中
Service生命周期的各个回调和其他的应用组件一样,是跑在主线程中,会影响到你的UI操作或者阻塞主线程中的其他事情(尤其是bind Service时)。原创 2017-03-19 23:39:04 · 883 阅读 · 0 评论 -
广播的优先级和处理方法
1.无序广播:发送方发出后,几乎同时到达多个广播接收者处,并且无法终止广播继续传播,使用Context.sendBroadcast(intent);2.有序广播:广播接收者需要提前设置优先级,优先级高的先接收到广播,而且能终止广播(abortBroadcast());使用Context.sendOrderedBroadcast(intent);有序广播可以设定接收的优先级,并在接收后删掉这个广原创 2017-03-19 23:40:45 · 3535 阅读 · 0 评论 -
Android线程的优先级和设置方法
Android线程大方向上来说,可以分为UI线程和background线程,如果从UI线程启动,则该线程优先级默认为Default,归于defaultgroup,会平等的和UI线程争夺CPU资源。这一点尤其需要注意,在对UI性能要求高的场景下建议将线程设置为background线程:Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGR原创 2017-03-19 23:27:44 · 1881 阅读 · 0 评论 -
Androi下把一个应用设置为系统应用的方法
成为系统应用,首先要在对应设备的Android源码SDK下编译,编译好之后:此Android设备是Debug版本,并且已经root,直接将此apk用adb工具push到system/app或system/priv-app下即可。如果非root设备,需要编译后重新烧写设备镜像即可。有些权限(如WRITE_SECURE_SETTINGS),是不开放给第三方应用的,只能在对应设备源码中编译,原创 2017-03-20 14:28:22 · 1054 阅读 · 0 评论 -
对Android中Context的理解
Context:包含上下文信息(外部值)的一个参数.Android中的Context分三种,ApplicationContext,Activity Context ,Service Context.它描述的是一个应用程序环境的信息,通过它可以获取应用程序的资源和类,也包括一些应用级别操作,例如:启动一个Activity,发送广播,接受Intent信息等。原创 2017-03-20 14:30:27 · 356 阅读 · 0 评论 -
AndroidApp应用中的网络层设计
1.在HttpUrlConnection基础上封装了常用的方法,get、post、上传、下载(包括断点下载),包括请求成功、失败、请求中、处理成功以及网络问题等封装,利用接口回调或者广播与UI交互,关于网络请求结果的缓存,我是单独处理的,比如像图片缓存用了LruCache以及File.并没有放在网络层;2. android-async-http,封装了常用的方法,get、post、上传、下载;原创 2017-03-20 14:33:44 · 658 阅读 · 0 评论 -
Android开发环境配置
一、Java环境安装 1、运行jdk安装包(jdk_xxxx.exe)安装jdk,默认安装路径如C:\Program Files\Java\jdk1.8.0_31 2、配置Java环境 a、在“我的电脑”右单机-->属性-->高级系统设置-->环境变量-->系统环境变量 b、新建原创 2017-03-20 16:00:35 · 228 阅读 · 0 评论