android
码农部落格
这个作者很懒,什么都没留下…
展开
-
java线程相关
开启线程的三种方式?线程和进程的区别?为什么要有线程,而不是仅仅用进程?run()和start()方法区别如何控制某个方法允许并发访问线程的个数?在Java中wait和seelp方法的不同;谈谈wait/notify关键字的理解什么导致线程阻塞?线程如何关闭?讲一下java中的同步的方法数据一致性如何保证?如何保证线程安全?如何实现线程同步?两个进程同时要求写或者读,能不...原创 2020-02-03 15:34:34 · 139 阅读 · 0 评论 -
java中高级面试题
JVMJVM内存模型结构方法区和直接内存什么时候会oom?JVM收集器G1的内存模型和CMS的内存模型有什么不同?jvm调优用过吗?如何查看java内存使用情况(jconsole、命令jmap、jstack等等) 集合Arraylist、linkedlist差异,应用场景;HashMap在JDK1.8有哪些改动?HashCurrentMap和HashMap的区别在哪里?Ha...原创 2020-02-03 15:21:24 · 151 阅读 · 0 评论 -
java基础篇
private修饰的方法可以通过反射访问,那么private的意义是什么Java类初始化顺序对方法区和永久区的理解以及它们之间的关系一个java文件有3个类,编译后有几个class文件局部变量使用前需要显式地赋值,否则编译通过不了,为什么这么设计ReadWriteLock读写之间互斥吗Semaphore拿到执行权的线程之间是否互斥写一个你认为最好的单例模式B树和B+树是解决什么样...原创 2020-02-03 15:17:21 · 123 阅读 · 0 评论 -
Android面试知识点总结分析(二)Collection接口
java记录之CollectionCollection是一个java数据集合的接口,继承Iterator迭代器接口,保证子类全部支持迭代功能。分别有Set,List,Queue接口继承它,AbstractCollection实现了Collection接口;支持的方法1.int size()返回当前集合的成员数量;如果数量大于Integer.MAX_VALUE,则返回Integer.MAX...原创 2019-11-28 18:20:25 · 206 阅读 · 0 评论 -
Android面试知识点总结分析(四)HashMap
1. HashMap的实现原理,优化原理,扩容原理HashMap的简介HashMap 主要用来存放键值对,它基于哈希表的Map接口实现,是常用的Java集合之一。JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的(“拉链法”解决冲突).JDK1.8 以后在解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为 8...原创 2019-12-29 11:23:57 · 353 阅读 · 0 评论 -
Android面试知识点总结分析(三)Map接口方法
java记录之MapMapkey-value映射的接口,是由数组和链表组成的数据结构支持的方法1.int size()返回key-value映射的数量2.boolean isEmpty()返回map是否为空3.boolean containsKey(Object key)map中是否包含当前key如果key的类型和map的key的类型不一致,则抛出ClassCastExcepti...原创 2019-12-29 10:06:13 · 166 阅读 · 0 评论 -
Android面试知识点总结分析(一)面试知识点图谱
java部分1.collectionMapHashMap的实现原理,优化原理,扩容原理HashTable,和HashMap的区别,线程同步LinkedHashMapConcurrentHashMap,为什么线程安全SparseArraySetHashSetTreeSet平衡树,红黑树,二叉树ListArrayList 实现原理,扩容LinkedList实现原理...原创 2019-12-26 19:43:54 · 176 阅读 · 0 评论 -
Android--JNI的开发流程
1.开发环境搭建(eclipse下ndk配置)(as下的ndk配置) 2.编写java native方法 3.编译java类为.class字节码文件 4.javah 编译字节吗文件生成.h头文件 5.根据头文件建立相应的.c文件将相应的方法实现 6.ndk build 生成.so库文件 7.使用System.loadLibrary(xxx)加载.so库文件 8.调用java方法验证原创 2016-08-08 14:55:14 · 219 阅读 · 0 评论 -
Android系统启动过程,App启动过程
App启动过程:Activity启动过程详解从桌面点击到activity启动的过程1、Launcher线程捕获onclick的点击事件,调用Launcher.startActivitySafely,进一步调用Launcher.startActivity,最后调用父类Activity的startActivity。2、Activity和ActivityManagerService交互,引入Instrum原创 2016-08-31 11:10:51 · 598 阅读 · 0 评论 -
Launcher组件启动MainActivity组件的过程
1.Launcher组件向ActivityManagerService发送一个启动MainActivity组件的进程间通信请求。 2.ActivityManagerService首先将要启动的MainActivity组件的信息保存下来,然后再向Launcher组件发送一个进入中止状态的的进程间通信请求。 3.Launcher组件进入到中止状态之后,就会向ActivityManagerServic原创 2016-08-21 22:01:00 · 468 阅读 · 0 评论 -
Android ANR 以及如何避免
ANR是什么?ANR,是“Application Not Responding”的缩写,即“应用程序无响应”。系统会向用户显示一个对话框,用户可以选择“等待”而让程序继续运行,也可以选择“强制关闭”。在Android中,应用程序的响应是由Activity Manager和WindowManager系统服务监视的 。当它监测到A、B、C情况中的一个时,Android就会针对特定的应用程序显示ANR:A原创 2016-08-25 10:45:46 · 406 阅读 · 0 评论 -
Git使用
git branch -a罗列出所有本地和远程的分支 git checkout -b localbranch remotebranch 创建本地分支,以remotebranch为开始。这样就建立了本地分支和远程分支的关系。 当切换到本地分支后,通过git log查询分支提交日志git分支和标签的区别 标签主要适用于发布,更像一个里程碑式; 分支主要是向前进行。git tag查看所有分支 g原创 2016-10-14 15:30:29 · 217 阅读 · 0 评论 -
Android Studio使用心得 - 常见问题
Android Studio使用心得 - 常见问题# 欢迎使用Markdown编辑器写博客 整理了一些这段时间遇到的常见问题,希望对各位猿们有帮助。。。如果觉得有用就点个赞哦问题一:Error:(26, 9) Attribute application@icon value=(@drawable/logo) from AndroidManifest.xml:26:9Error:(28, 9) At原创 2016-11-11 14:01:23 · 338 阅读 · 0 评论 -
popwindow 在android 7.0位置错误
继承popwindow并覆写以下方法,亲测有效@Override public void showAsDropDown(View anchorView, int xoff, int yoff) { if (Build.VERSION.SDK_INT == Build.VERSION_CODES.N) { int[] a = new int[2];原创 2017-05-23 16:40:09 · 971 阅读 · 0 评论 -
Android 彻底去除启动白屏,并减少启动时间
白屏体验时android体验的克星,但是可以解决,废话少说, 1.在首启动的引导页或者广告页的activity的style加入以下代码<item name="android:windowNoTitle">true</item> <item name="android:windowIsTranslucent">true</item>2.将application中三方的初始化代码放到原创 2017-05-25 15:06:54 · 2421 阅读 · 0 评论 -
WebView加载网页不显示图片解决办法
对于大家来讲WebView肯定很熟悉,因为我们在日常开发中经常用到它。所以对于它的一些基本用法我就不在这啰嗦了,直接进入正题。 我遇到的问题就是在使用WebView加载网页的时候图片不显示(我手机系统是5.1.1),当时出现这个问题我就想当然的以为,是不是给WebView少设置的什么东西。然后百度一下: mWebview.getSettings().setJavaScriptEn原创 2016-11-11 15:12:11 · 15317 阅读 · 16 评论 -
程序员书单
http://blog.csdn.net/shenzhq1980/article/details/49049571转载 2016-08-06 19:20:16 · 282 阅读 · 0 评论 -
Android--View/ViewGroup事件分发机制
最近经常写自定义组件的代码,做一些事件处理,花时间整理了下知识点。测试的demo如下,就是在dispatchTouchEvent,onTouchEvent,onInterceptTouchEvent等几个主要的生命周期函数打印出日志。activity_main.xml<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/a原创 2016-08-16 20:58:50 · 255 阅读 · 0 评论 -
Android--关于ListView和ViewPager滑动冲突的处理
在项目中我们经常会做在listview的header添加viewpager来滚动播放(广告或者新闻等焦点图)的需求,由于viewpager的横向滑动和listview的纵向滑动会导致冲突 解决办法如下:原创 2016-08-16 20:56:09 · 1067 阅读 · 0 评论 -
android在信息栏显示推送信息,并…
public class NotificationActivity extends Activity { //声明通知(消息)管理器 NotificationManagerm_NotificationManager; Intent m_Intent; PendingIntent m_PendingIntent; //声明Notification对象 Notification m原创 2013-10-10 11:16:32 · 662 阅读 · 0 评论 -
饭店点餐系统之模块划分
系统的模块划分1)顾客终端:该终端为顾客提供菜品搜索功能,顾客可以按菜品名或厨师名进行搜索,同时顾客可以看到菜品图片。顾客在点完菜品,点击“提交”按钮后,终端将把点菜消息发送到系统管理终端,系统管理终端登记点菜信息后向厨师终端转发点菜消息,表示做菜任务到达。将顾客的需求发送给系统管理端(平台是android系统的平板或手机)2)系统管理终端:该终端负责进行对菜品、厨师的管理,并且包含账原创 2013-10-10 11:16:11 · 5342 阅读 · 0 评论 -
饭店点餐系统之数据库表结构
数据库表结构本系统总共有9张表,即菜品表、菜销售表、点菜表、做菜表、管理员表、会员表,餐桌使用情况表,日志表和统计表,具体的表结构如表1--表7: 表1 菜品表Dishes(菜品表)设计字段名称数据类型主键数据长度数据范围默认值允许空字段说明d原创 2013-10-10 11:16:20 · 20578 阅读 · 0 评论 -
饭店点餐系统之系统网络结构
系统的网络结构 四个终端都通过路邮器相连起来,顾客终端用wifi与路由器相连。由于无线局域网传输距离的限制, 因此若脱离其无线服务覆盖范围时通信便会中断, 为解决此一问题须构建无缝的漫游连接.以802.11b为例以三个不重叠信道1,6,11为基础向外扩充, 如此当无线网卡由信道11之覆盖区漫游至信道6之覆盖区时,便能自动切换至信道6之服务区而不中断联机.同理可再由信道6之覆盖区漫游至信道原创 2013-10-10 11:16:13 · 1917 阅读 · 0 评论 -
Android笔记---多线程之handler(旧)
Android--多线程之Handler前言 Android的消息传递机制是另外一种形式的“事件处理”,这种机制主要是为了解决Android应用中多线程的问题,在Android中不 允许Activity新启动的线程访问该Activity里的UI组件,这样会导致新启动的线程无法改变UI组件的属性值。但实际开发中,很多地方需要在 工作线程中改变UI组件的属性值,比如下载网络图片、动画原创 2015-02-13 16:03:06 · 525 阅读 · 0 评论 -
(原创)Android studio--Libs导入(已解决)
android studio不同于eclipse。eclipse只要把相关的全部导入libs即可。但是android studio需要把jar包导入到libs但是.so文件需要在main目录下建一个叫做jniLibs的目录,然后把.so的文件都放进去。拿baiduMapSdk做示范:jar位置studio--Libs导入(已解决)" title="(原创)A原创 2015-02-13 16:05:20 · 1854 阅读 · 0 评论 -
Android错误记录-WindowManager$BadTokenException: Unable to add window -
错误产生:private Context mcontext; @Override protected void onCreate(Bundle savedInstanceState) {mcontext = getApplicationContext(); System.out.println("mcontext原创 2015-02-13 16:04:05 · 488 阅读 · 0 评论 -
关于android webview 图片使用同一个src导致只加载第一张的问题
默认情况html代码下载到WebView后,webkit开始解析网页各个节点,发现有外部样式文件或者外部脚本文件时,会异步发起网络请求下载文件,但如果在这之前也有解析到image节点,那势必也会发起网络请求下载相应的图片。在网络情况较差的情况下,过多的网络请求就会造成带宽紧张,影响到css或js文件加载完成的时间,造成页面空白loading过久。解决的方法就是告诉WebView先不要自动加载图片,等原创 2015-10-15 12:03:22 · 1714 阅读 · 0 评论 -
关于 gradle 编译报错的问题
Execution failed for task ‘:AutoOwnersHome:dexC1Debug’. com.android.ide.common.internal.LoggedErrorException: Failed to run command: 如果是以上错误(下面是全部内容): 则去掉 dexOptions { preDexLibraries =原创 2015-10-15 12:59:40 · 1116 阅读 · 0 评论 -
Android 如何判断当前线程是否是主线程
判断当前线程是否为主线程共有两种方法:1.使用Looper判断,方法为: Looper.myLooper() != Looper.getMainLooper();2.使用线程句柄判断,将主线程的Thread.currentThread()获取到主线程当前句柄,保存起来,在需要判断的时候调用Thread.currentThread()来与之前保存的主线程句柄比较,即可判断当前线程是否是主线程了。原创 2016-07-26 16:32:19 · 1070 阅读 · 0 评论 -
Android设计模式--单例模式
何为单例模式所谓单例就是该类只有一个实例,并向外只提供这个实例,不提供构造方法单例模式在android源码中的应用的例子1.InputMethodManagerpublic final class InputMethodManager { static final boolean DEBUG = false; static final String TAG = "InputMetho原创 2016-07-26 17:11:54 · 348 阅读 · 1 评论 -
Android--Service与AIDL(一)
关于serviceservice是android的四大组件之一,是Android中实现后台运行的解决方案,非常适合那些不需要和用户交互的还需要长期运行的任务。但是所谓的后台并不是运行在子线程中的意思service是执行在UI线程,也就是主线程所以不能够在service中执行耗时的操作,除非开启线程。普通serviceservice的生命周期只有三个 onCreate(),onStartComman原创 2016-07-28 16:06:14 · 421 阅读 · 0 评论 -
Android的消息机制
关键字简单介绍Message(消息) MessageQueue(消息队列) Looper(通过死循环不断读取消息队列的消息) Handler(发送,接受并处理消息)ui线程的消息循环在ActivityThread.main方法中创建,该函数为Android应用程序的入口。执行该方法后应用程序就启动了,并且不断从消息队列中取数据,然后处理数据。在子线程中完成耗时操作,好多情况下需要更新UI,但是原创 2016-07-31 10:41:00 · 244 阅读 · 0 评论 -
Android--Service与AIDL(二)
Android–Service与AIDL(一)IntentServiceservice一般被用于在后台执行一个任务,耗时任务需要开启线程,二IntentService将用户的请求执行在一个线程中,用户只需要覆写onHandleIntent函数,在该函数中完成自己的耗时任务即可,在完成任务后,IntentService会调用stopSelf自我销毁,该service适用于完成短时间的耗时任务。前台Se原创 2016-07-28 16:47:57 · 382 阅读 · 0 评论 -
android猜数字游戏
猜数字游戏大家都懂的,直接上代码package com.guessnum;import java.util.Random;public class Guess { private Random random; public int GetRandomNum(){return random.nextInt(100);} public int JugeNum(int原创 2013-10-10 11:16:09 · 4741 阅读 · 0 评论