- 博客(44)
- 资源 (15)
- 收藏
- 关注
原创 线程池的设计与实现解析
线程池的设计与实现解析概述 前言: 主要分享基于ThreadPoolExecutor实现的线程池设计和实现. 编写目的 介绍线程相关的基础知识; 介绍线程池的原理,及如何合理使用线程池; 适用人群 有Java基础,了解并发的开发人员;基础知识介绍 锁 2.1.1 SynchronizedART VM原理简述:获取/释放锁的过程实际上,由mon...
2019-12-05 18:02:14
689
1
原创 View Post使用过程需要注意的问题
问题:流程:在ImageLoader中,在item create的时候,就利用 view.post 方式请求加载 placeholder Runnable,图片加载完成之后,再在Thread线程中 通过View.post 方式请求加载Image Runnable。 现象:会出现 概率性Image加载不出来的。 直接原因:发现是 两次post,第一次先执行的是 Image...
2018-09-21 11:08:59
630
原创 性能优化的思考
问:性能优化从哪些方面着手:答:a). 平台相关的方面:了解底层或者系统的原理,更合理的使用API;b). 代码逻辑算法方面:合理的写代码,做到优化代码结构,合理设计算法,避免资源的浪费;c). 并发方面:i、响应的及时性:① 可以合理使用缓存,提高响应速度;② 尽量不适用锁(在锁和忙等待以及是否需要等待等方面进行思考);ii、可伸缩性:① 是否涉及到线程...
2018-09-15 10:32:56
222
原创 高并发-AsyncTask
1.AsyncTask是google 设计出来,便于开发者使用的线程池,属于模板设计的模式;2.AsyncTask内部其实是使用了 java提供的线程池类库的实现,如下代码:private static final int CPU_COUNT = Runtime.getRuntime().availableProcessors();// We want at least 2 thre
2017-12-26 15:25:14
326
原创 Android学习规划
业余时间的学习规划① 快速看AssetMgr 的 sourcecode,以便 了解AssetMgr 的内部原理; 结果预期: 1.知道如何加载资源; 2.通过 R.java 文件应用资源,而可以使用资源 的原理;②对剩余的 C++ 的几个章节的语法,进行快速复习; 结果预期: 1.对 多继承 、析构函数 、指针 这些概念重新过一遍,因为之前都遗忘了;③将 JVM 剩余的一些章节 阅读完毕;
2016-05-10 11:52:57
353
原创 looper、handler、messagequeue 总结
Looper 【监控保安】: 有pipe机制实现 : 有事唤醒【awake】,无事睡觉【wait】;MessageQueue 【管理数据的仓库管理员】: 内部是一链表实现; Handler 【真正做事的员工】: 在UI住线程去处理问题;Looper 有事情,就回去 sendmessage,将 messageQueue
2015-06-14 09:56:48
616
转载 android安全机制
话说这个界面的排版,我很痛苦;都不知道戏子的排版怎么那么好看。。。 看完大家发表关于android安全机制的一些DEMO和分析,总感觉似乎少了什么,三大平台的安全机制,我决定静心的去分析和实战了一段时间,并成功在三大平台去锻炼,今晚带来的关于android的安全机制,安全-没有安全-何来平安,各位保重身体哈!首先大家先看一张图片:
2014-07-30 09:45:21
731
转载 将Android程序部署至真实Android手机
Android开发19——将Android程序部署至真实Android手机以及asm.jar的运行分类: Android Java2012-12-18 14:08 618人阅读 评论(0) 收藏 举报androidAndroidtoolsTools部署一、让真实手机显示在Devices透视图中以前Devices透视图中显示的均是我们的Android模
2014-05-08 14:42:11
801
转载 android的logcat详细用法!
logcat是Android中一个命令行工具,可以用于得到程序的log信息。 见板凳详细说明! 本贴内容来自网络,引用网址为:http://hi.baidu.com/%C9%C1%D2%AB%B5%C4%CB%AE%BD%A7/blog/item/7cc9e1d00715dc369b50271d.html。 【造成的版权问题,LZ概不负责任!转载请注明出处】,此贴为技术
2014-05-08 14:34:37
506
转载 Android权限之sharedUserId和签名
Android权限之sharedUserId和签名 转自:http://blog.youkuaiyun.com/hmg25/article/details/6447067 最近在做个东西,巧合碰到了sharedUserId的问题,所以收集了一些资料,存存档备份。 安装在设备中的每一个apk文件,Android给每个APK进程分配一个单独的用户空间,其manifest中
2014-05-08 11:14:55
465
原创 关于 查看文件的size
public static long getTotalSize(String device) {StatFs sf = new StatFs (device);//long totalblocks = sf.getBlockCountLong();//long freeblocks = sf.getFreeBlocksLong();//为使用的,包括 系统保留的部分long a
2014-05-06 14:10:32
973
转载 DLNA介绍(包括UPnP,2011/6/20 更新)
分类: DLNA2011-05-03 16:49 26891人阅读 评论(33) 收藏 举报microsoft网络serviceserversoap这部分的内容大多来源于网络及官方文档,按照自己的翻译理解整理所成。东西比较多,从头慢慢看还是可以懂个大概的。 目录:一、DNLA的建立二、DLNA的成员三、DLNA标准的制定四、DLNA的设备五、DLNA的架构
2014-04-17 11:30:46
952
转载 android framework学习回忆
android framework学习回忆2011-07-27 10:47 2742人阅读 评论(7) 收藏 举报androidgoogle框架任务searchmenu 好久没来这里了,这2天开发板不够用,所以暂时闲下来学习东西。顺便回忆一下学到的会用的东西。 刚踏入Android Framework大门,是从电源管理开始的。记得当时拼命的googl
2014-04-15 09:38:59
701
转载 java synchronized详解
记下来,很重要。Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一个线程访问object的一
2014-04-15 09:35:15
497
转载 ThreadLocal 的用法与分析
首先,ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。各个线程中访问的是不同的对象。 另外,说ThreadLocal使得各线程能够保持各自独立的一个对象,并不是通过ThreadLocal.set()来实现的,而是通过每个线程中的new 对象 的操作
2014-04-14 14:17:57
564
原创 ubuntu的root 如何开启
ubuntu的root用户默认是禁止的,需要手动打开才行 事实上ubuntu下的所有操作都用不到root用户,由于sudo的合理使用,避免了root用户下误操作而产生的毁灭性问题 root账号启用方法(其实我个人认为这没有多大必要):执行下面的操作:1.先解除root锁定,为root用户设置密码打开终端输入:sudo passwdPassword: <--- 输入你当前用户的密
2014-04-12 10:32:27
950
1
原创 更换apk的sign
1. 准备 你所在平台的 对应的key文件(platform.x509.pem platform.pk8 )和 签名工具 signapk2. 将apk的原有的签名给干掉3. 找到对应的 签名工具 signapk 所在路径 然后再 cmd 输入如下:java -jar signapk.jar platform.x509.pem platform.pk8 test_write_usb.
2014-04-01 17:42:52
851
转载 反编译
先说一下,反编译并非完全编译,越复杂的越难反编译,只能保证将其反编译为机器语言(汇编语言)。但是通常不能把可执行文件变成高级语言源代码,只能转换成汇编程序。像*.exe之类的很难反编译,比如使用eXeScope,就算是最简单程序也只能反编译成机器码,一般人是看不懂的,也很难看懂的。而java则是使用的JVM,所以教容易反编译,能大概反编译成源代码。这里我说的是大概,差不多的意思。下面简单介绍一下反
2014-04-01 15:33:22
1551
转载 Android权限说明
http://blog.youkuaiyun.com/superkris/article/details/7709504Android权限说明Android系统是运行在Linux内核上的,Android与Linux分别有自己的一套严格的安全及权限机制,Android系统权限相关的内容,(一)linux文件系统上的权限-rwxr-x--x system
2014-03-31 20:42:29
1494
原创 在 terminal 下安装和卸载 第三方应用和系统应用
安装系统应用apk 步骤:1.连接板子,将串口连接到secureCRT ,在命令行窗口 键入su ---->进入root管理员权限start adbd ---->开启Android 手机上的一个服务进程,进程名为adbdmount -o remount rw system chmod 777 system/app2.在cmd 命令行下,adb connec
2014-03-31 19:43:04
2264
转载 java RandomAccessFile 用法
http://blog.youkuaiyun.com/akon_vm/article/details/7429245RandomAccessFileRandomAccessFile是用来访问那些保存数据记录的文件的,你就可以用seek( )方法来访问记录,并进行读写了。这些记录的大小不必相同;但是其大小和位置必须是可知的。但是该类仅限于操作文件。RandomAccessFile不属于I
2014-03-31 14:13:35
426
转载 按位与、或、异或等运算方法
按位与、或、异或等运算方法 (2010-06-12 13:47:15)转载▼标签: 位运算 与、异或 杂谈 按位与运算符(&)参加运算的两个数据,按二进制位进行“与”运算。运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1; 即:
2014-03-31 12:43:36
537
原创 Android SystemProperties和Settings.System介
Android SystemProperties和Settings.System介绍,不同应用间传递信息1 使用 SystemProperties.get这中方法在framework里面 经常见到。特别属性如果属性名称以“ro.”开头,那么这个属性被视为只读属性。一旦设置,属性值不能改变。如果属性名称以“persist.”开头,当设置这个属性时,其值也将写入/d
2014-03-29 15:09:40
1032
原创 android.os.NetworkOnMainThreadException 异常处理
android.os.NetworkOnMainThreadException 异常处理遇到的难题:通常遇到这个问题是,google 提示 developer ,访问网络是耗时的操作,不宜在MainThread运行解决方法:开启子线程====new AsyncTask (){}.excute();
2014-03-29 11:16:40
558
原创 实现了Runnable接口的实例,就一定会启动一个新的线程么?
实现了Runnable接口的实例,就一定会启动一个新的线程么?答案是否定的:原因 用实现了Runnable接口的对象 作为 Thread的线程的目标对象 Thread(Runnable target); Thread(Runnable target, String name)。如果 target 指定的是 当前主线程或者是null ,则new thread(
2014-03-03 22:45:26
1001
转载 Main Thread & UI Thread
多线程与异步Main Thread & UI Thread当程序启动的时候Android会自动创建一个进程和一个线程,这个线程负责界面更新,收集系统事件和用户的操作事件等并分配给对应的组件,所以这个线程非常重要 被称为主线程,因为所的和UI有关的操作都是在这个线程当中进行的所以也被称作UI线程。所以说默认情况下主线程和UI线程指的是同一个线程。For instance, when th
2014-03-01 18:11:40
2092
原创 TableHost_用法
语句解释:|- 在构建TabHost控件时,最少要使用如下三个标签: |- TabHost>标签:描述TabHost控件本身。 |- TabWidget>标签:描述选项卡集合。 |- FrameLayout>标签:描述帧布局。|- TabHost控件要求:|- 其内的TabWidget和FrameLayout的id属性必须为:|-
2014-02-28 22:24:55
1154
原创 在listview中,实现_分页加载_异步加载
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount,int totalItemCount) { // 若已经显示到了最后一条记录,则尝试继续更新记录。 if(firstVisibleItem + visibleItemCount == tot
2014-02-28 16:19:11
756
转载 OnScrollListener
类型interface所属包android.widget签名public static interface AbsListView.OnScrollListener常用方法:方法签名:public abstract void onScrollStateChanged (AbsLi
2014-02-28 16:03:57
558
转载 AsyncTask内的各个方法调用顺序:
|- AsyncTask内的各个方法调用顺序: |- 首先,用户调用execute方法,启动AsyncTask 。然后在execute方法中: |- 首先调用onPreExecute方法,执行初始化操作。 |- 然后从线程池中取出若干个空闲的线程,并使用该线程调用doInBackground方法,执行耗时的操作,如文件下载等。|- 提示:调用exe
2014-02-28 11:43:37
1140
原创 在Windows下的javah编译class文件找不到android.app.Activity的类文件
用 javah 生成 jni 的头文件,摸索了好久,大概搞来2个小时,终于完全清楚了:1.第一, JAVA_HOME C:\Java\jdk1.7.0_05 path C:\Java\jdk1.7.0_05\bin;G:\DBank\ClickUp;G:\DBank\ClickUp;E:\UltraEdit\以上两项配置,是配置好 jdkclas
2014-01-02 21:58:09
790
原创 android中关于logcat的管理
1.一般来说,专业的程序开发,在developer 阶段,让logcat 在控制台显示,在发布阶段,就屏蔽logcat的打印:具体做法:import android.util.Log;/** * 开发阶段,让所有的log 都可见,发布时,改变 state的值,达到屏蔽程序的logcat * */public class Logger {public
2014-01-01 13:02:20
951
转载 myPid() 和 myUid() 的区别
PID:为Process Identifier, PID就是各进程的身份标识,程序一运行系统就会自动分配给进程一个独一无二的PID。进程中止后PID被系统回收,可能会被继续分配给新运行的程序,但是在android系统中一般不会把已经kill掉的进程ID重新分配给新的进程,新产生进程的进程号,一般比产生之前所有的进程号都要大。UID:一般理解为User Identifier,UID在li
2013-12-31 08:42:49
5174
原创 android 底层的linux 常用命令
1,。从模拟器中找到 .apk 文件的名称:步骤:1. adb shell ----> cd system ----> cd app ----> ls由此,可以得到模拟器里面所有 安装的 应用程序 (路径 : /system/app)2。将模拟器中的 .apk 文件 导出来:步骤:2 .1 cd /d C:\新建文件夹由此,是选择将文件导出的路径2.2 adb
2013-12-30 21:54:24
841
原创 程序开发中,资源文件的存放原则
程序 开发中有一些大的素材 和资源文件 1. res目录建立一个文件夹 raw 在R文件中生成一个id的引用 最好推荐存放一些小的资源 几十k 几百K 2. assets 资产目录不会把里面的内容在R 文件中生成一个引用assets 不推荐我们存在1M 文件appt 打包工具可能出现问题.3. javame 把大的资源文件放
2013-12-29 20:29:41
752
原创 activity 的四种启动模式
android:launchMode="standard“/>lstandard这是默认模式,每次激活Activity时都会创建Activity实例,并放入任务栈中。lsingleTop如果在任务的栈顶正好存在该Activity的实例,就重用该实例(会调用实例的onNewIntent()),否侧就会创建新的实例并放入栈顶(注:即使栈中已经存在该Activity的实例,只要不在栈顶,
2013-12-27 10:56:44
486
原创 android项目——手机卫士_遇到的问题
1 。 在黑名单电话的拦截和擦除通话记录的过程中,曾经遇到的状况:endCall();deleteCall_log();无法成功删除 content://call_log/calls 中的通话记录。原因:由于在 deleteCall_log(); 执行的时候,记录还没来得及写入到call_log/calls (在文件的数据库的路径是:com.android.provider.co
2013-12-22 23:10:30
785
原创 android学习之常犯错误
1。 sharedPreference.edit(); 保存数据后,及得 commit();否则数据不会提交保存eg:Editor editor = sharedPreference.edit();editot.putString(key, value);editor.commit();2.用 service 或者 broadcastreceiver 激活
2013-12-17 13:52:15
633
原创 android三大组件之Service
(首先做一下申明,搞技术,你不记笔记,不动手,不总结,鉴于此,写下学习当中的知识点,以备日后 查阅)关于Service,要了解两点:一:如何启动Service,以及Service的生命周期;二:如何利用Service进行通信(包括 同一进程间 和 不同进程(注意:不是以线程划分的,说白了,就是看是不是在 同一应用中) 远程通信AIDL);对于第一点:通过 Context.s
2013-12-17 13:43:24
610
原创 javaweb 之 总结篇
想来,学习技术是一项繁多复杂的活儿,特别是计算机技术(或者具体来说,是Java),如果你想尽可能在短时间内学好一门技术,只有不断的学习和巩固(在我看来,巩固技术真的是非常重要的有效的学习手段)、最后总结。因此,从今日开始,所有关于学习的知识点回顾和总结将在优快云里一一罗列。JavaWeb之知识点概要:1. HHTP协议2. Servlet技术3. 会话3.1 co
2013-08-26 20:14:08
555
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人