JAVA学习笔记
李昌强
进无止境
展开
-
ContentProvider 详解
一、定义ContentProvider 主要用户不同进程之间的数据共享.二、如何构建1、首先建立继承与ContentProvider的子类并实现他 oncreate、query、getType、insert、delete、update方法2、在manifest中生命节点 格式如下:android:authorites="xxx"android:permission=原创 2015-12-06 17:38:47 · 410 阅读 · 0 评论 -
View的事件体系
一、View的位置参数View的位置分别包含4大属性:top、left、right、bottom,他们都是相对于父控件而言。控件的宽度和长度为:width=right-left height=bottom-top二、MotionEvent和TouchSlop1、MotionEvent表示点击事件的X和Y坐标。分别有getX()、getY()表示相对于父控件的坐标.getRawX()和getRawY(原创 2016-06-05 01:27:52 · 359 阅读 · 0 评论 -
Android自定义View流程
一、View的绘制流程 View的绘制是在ViewRootImpl类里面进行的。该ViewRootImpl类是WindowManager连接DecorView的纽带。View的Measure、Layout、Draw都是在里面完成。ViewRootImpl通过PerformTraverals开始绘制先后经过以下流程:1、performMeasure–》measure–》onMeasure原创 2016-06-05 01:08:31 · 403 阅读 · 0 评论 -
对Window和WindowManager的理解
一、对Window和WindowManager的理解 1、Window表示一个窗口、一个抽象类它的实现是PhoneWindow.android的所有视图包括Activity、Dialog都是同Window来呈现 2、WindowManager是Window的创建者类,它和WindowManagerService通过IPC来进行交互 二、如何向Window添加ViewlayoutParam=n原创 2016-06-05 01:07:09 · 425 阅读 · 0 评论 -
Android生命周期的理解
1、onCreate() 生命周期的第一个方法,可以调用setContentView加载布局和资源初始化工作 2、onStart() 表示activity正在启动中,即将用。这是Activity已经是可见但还被隐藏在stack 3、onResume() 表示Activity已经可见,并出现在前台statck并开始活动。他与onStart()的区别是是否在前台 4、onRestart()原创 2016-06-05 01:04:57 · 392 阅读 · 0 评论 -
Activity之间的交互
一、不同App直接Activity的调用 1、当不同的App直接进行调用Intent的声明需要隐式声明 2、在调用之前需要检查是否有App能够接收否则会引起CrashPackageManager packageManager = getPackageManager();List activities = packageManager.queryIntentActivities(intent,原创 2016-06-05 00:58:49 · 434 阅读 · 0 评论 -
Activity的启动流程图
Acitivty的启动流程是Android系统中的难点之一。不仅仅是因为他的流程复杂更重要的是每个流程中所涉及到的类都具有相当重要的属性。本图通过代码走读加注释的方式希望能够将其清晰化PDF 下载请点我原创 2016-06-13 23:43:12 · 746 阅读 · 0 评论 -
Apache Shiro 移动端认证回调函数授权登录
J2EE项目开发中,若用到Apache Shiro权限框架,若需为移动端提供登录接口并提供授权认证则需要对移动端提供的登录信息进行处理,封装到token中,然后交由Apache Shiro进行认证回调函数授权登录原创 2016-06-11 22:29:23 · 4289 阅读 · 0 评论 -
图解tcpip读书笔记
T参考: 一步一步学习IP路由流程 第一章 网络基础知识OSI参考模型将网络通信分为7层,对通信中的必要功能进行了归纳:1、应用层: 为应用程序提供通信的细节 如:文件传输、电子邮件2、表示层:将应用信息转换为适合网络传输的格式或将下一层数据转换为应用层格式数据 如:utf-8编码转换3、会话层:负责建立和断开连接及数据的分割等4、传输层:保证数据的可靠性传输5、网...原创 2017-02-20 22:44:57 · 411 阅读 · 0 评论 -
Android的线程和线程池
一、AsyncTask的初始AsyncTask是一种在后台执行任务然后将最新的进度和最后结果更新到UI线程的工具类。AsyncTask包含四个核心方法分别是: onPreExecute() 在UI线程中、异步任务执行前调用。 doInBackground(Params… params) 在线程池中执行,用于执行异步任务,此方法通过publishProgress来更新进度 onProgress原创 2016-06-06 22:59:01 · 187 阅读 · 0 评论 -
Android的消息机制
一、Android为什么不允许在子线程中访问UI主要是因为android的UI线程不是线程安全的,会导致系统的状态不一二、Handler的运行流程Handler在外部线程中发送一个消息后,消息会被添加到内部线程的MessageQueen。内部线程的Looper会不断的轮询MessageQueen来获取消息。当Looper发现有消息后就会在内部线程执行消息三、ThreadLocal的使用场景Threa原创 2016-06-05 11:11:13 · 281 阅读 · 0 评论 -
Android Fragment 的使用
一、如何创建Fragment1)Activity要继承FragmentActivity,若支持v7则继承AppCompatActivity 2)实现Fragment,在onCreateView()方法中创建View 3)将Fragment添加到Activity二、如何动态的添加Fragment1、首先通过getSupportFragmentManager().beginTransaction()原创 2016-06-11 22:54:20 · 239 阅读 · 0 评论 -
Activity的生命周期
一、activity的生命周期注意:1、当Activity从Stop状态恢复时会调用onRestart同时会再次调用onStart()方法即:onRestart()-->onStart()-->onResume(); 2、特殊状态的处理:1)当来电话或切换到其他Activity时要保存临时变量原创 2016-04-23 20:46:09 · 327 阅读 · 0 评论 -
IPC机制(跨进程通信)
一、线程和进程的区别线程是cpu执行的最小单元,进程是一个执行单元一般指一个程序和应用。因此进程和线程是包含与被包含的关系二、使用IPC时机1、由于某种特殊原因 如:插件化开发 2、因为应用所需内存太大 需要多进程来获取更多空间三、开启bIPC的方式通过在四大组件中设置android:process 属性。 1)直接包名加上”:remote”这种方式是属于当前应用的的私有进程其他应用不能调用原创 2016-06-05 01:30:42 · 440 阅读 · 1 评论 -
IntentFilter的使用
一、IntentFilter的分类1、action IntentFilter必须包含一个Action 2、category IntentFilter若不包含其他Category则必须设置默认的”android.intent.category.DEFAULT”这个Category 3、data 若定义了data则必须匹配二、data的组成<data android:scheme=""andro原创 2016-06-05 01:32:35 · 265 阅读 · 0 评论 -
Android的启动模式
一、android启动模式的分类1、Standard 即使在任务栈中存在相同Activity也会再次启动。当通过ApplicationContext启动时需要加上FLAG_ACTIVITY_NEW_TASK标记位。 2、SingleTop 若在栈顶存在相同Activity则不会再次创建Activity。它会调用onNewIntent()方法。若有相同的Activ原创 2016-06-05 01:33:24 · 405 阅读 · 0 评论 -
Fragment的使用详解
一、如何创建Fragment1)Activity要继承FragmentActivity,若支持v7则继承AppCompatActivity2)实现Fragment,在onCreateView()方法中创建View3)将Fragment添加到Activity二、如何动态的添加Fragment1、首先通过getSupportFragmentManager().beginTransa原创 2016-04-23 20:53:50 · 298 阅读 · 0 评论 -
Android Alarm 的设置
一、闹钟的分类1)从闹钟的设置时间方式分为:以开启启动后的间隔时间和日历时间2)从硬件上来说分为:1、当cpu休眠时不启动 2、即时cpu休眠时仍然启动所以有如下四种:ELAPSED_REALTIME—Fires the pending intent based on the amount of time since the device was booted, but原创 2016-04-23 20:52:35 · 532 阅读 · 0 评论 -
Photo&Vedio的拍摄
http://developer.android.com/training/camera/photobasics.html一、Vedio1、首先要声明权限 ... > android:name="android.hardware.camera" android:required="true"/> ...2、调用Vedio原创 2016-04-23 20:51:27 · 689 阅读 · 0 评论 -
Android屏幕适配
一、适配不同屏幕大小1、使用wrap_cont和match_parent2、使用RelativeLayout来适配不同组件之间的关系3、使用尺寸修饰符当屏幕的大小不同时如:Phone和TV 需要根据他们尺寸的大小来适配不同的Layout,如新闻app在手机上它可以只能先显示列表界面再显示新闻内容,但若在TV上可以左边显示列表右边显示详情,这样通过不同的Layout就有了就拥有更好的原创 2016-04-23 20:48:16 · 288 阅读 · 0 评论 -
多线程基础
Apache Shiro是Java的一个安全框架。目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Security,可能没有Spring Security做的功能强大,但是在实际工作时可能并不需要那么复杂的东西,所以使用小而简单的Shiro就足够了。原创 2016-06-07 18:31:21 · 417 阅读 · 0 评论