Android技术总结
文章平均质量分 70
风的王子
【关注领域】 架构 算法 前端 Android Flutter Unity
【喜欢爱好】武术和运动 看书 科幻和未解之谜
【我的GITHUB】https://github.com/zcwfeng
展开
-
插件化思想与类加载
欢迎关注我的简书大话插件化系列目录插件化(一) 插件化思想与类加载插件化(二) 插件化Activity的启动插件化(三) 插件资源加载最开始的起源:插件化技术最初源于免安装运行 apk 的想法。免安装的 apk 我们称它为 插件支持插件的 app 我们称它为 宿主免安装的 apk 我们称它为 插件支持插件的 app 我们称它为 宿主插件话解决的问题APP的功能模块越来越多,体积越来越大模块之间的耦合度高,协同开发沟通成本越来越大方法数目可能超过65535,APP占用的内存过大应转载 2020-12-03 22:53:37 · 320 阅读 · 0 评论 -
MMKV(四) 对前面的知识复盘
MMKV 总结学习和自己的对开源库的理解欢迎关注前言:由于知识点多,分了多个记录。MMKV( 一) 了解原理MMKV (二)基础知识点和实现流程解析MMKV (三) POSIX线程和文件锁可以先预览基础知识点,然后在继续本文结合文末的代码,关与NDK搭建等到我的文集查看1 初始化/文件准备在 Java MMKV 类中有两个静态的 initialize() 方法:public static String initialize(Context context) 和 public static S原创 2020-10-14 12:01:23 · 625 阅读 · 0 评论 -
Android开源框架ImageLoader的完美例子
Android开源框架ImageLoader的完美例子2013年8月19日开源框架之Universal_Image_Loader学习很多人都在讨论如何让图片能在异步加载更加流畅,可以显示大量图片,在拖动ListView的时候不会出现卡的现象。关于ImageLoader这个开源框架的使用有很多网友都介绍过,不过还不够清楚,这里有一个关于这个开源项目的完美例子,ListView转载 2013-11-04 00:20:34 · 1952 阅读 · 0 评论 -
android 截屏代码段
private Bitmap screenShot() { View view = getWindow().getDecorView(); Display display = this.getWindowManager().getDefaultDisplay(); view.layout(0, 0, display.getWidth(), di原创 2013-08-15 00:46:51 · 724 阅读 · 0 评论 -
原来OOM的罪魁祸首是C代码---android out of memory(OOM)
一.1.什么是 OutOfMemoryError:官方引用: Thrown when a request for memory is made that can not be satisfied using the available platform resources. Such a request may be made by both the running applica转载 2013-09-02 15:16:39 · 2195 阅读 · 0 评论 -
自定义dialog样式
自定义Dialog通常有两种方式,一种是继承Dialog类 自定义Dialog,另一种是继承Activity 然后让Activity以Dialog的形式显示,只要在Activity的配置文件里加上 android:theme=”@android:style/Theme.Dialog”。前者相比较后者比较节省资源,通常情况下建议使用前者。但是仅仅这样还不够.dialog实际显示的时候有一层边原创 2013-09-02 14:31:11 · 1155 阅读 · 0 评论 -
android解锁屏时Activity生命周期的变化
最近做的忍者小鸡暗杀行动遇到按锁屏键再解锁时 进入游戏画面会特别卡的问题,后来打日志发现 锁屏再解屏时生命Activity的生命周期发生异常变化引起的,下面就具体来看下。事先在GameActivity(游戏主界面)的 onCreate() 方法和 onDestroy()方法打上Log 。进入GameActivity时——————————->onCreate();按锁屏后 :——转载 2013-09-02 14:36:18 · 7591 阅读 · 0 评论 -
android中Bitmap的剪切与拉伸
1. Bitmap的剪切通常是用到了Bitmap类的createBitmap方法的几个重载方法:public static Bitmap createBitmap (Bitmap source, int x, int y, int width, int height, Matrix m, boolean filter)该方法结合Matrix(矩阵)来实现Bitmap的剪切,很多转载 2013-09-02 14:45:32 · 4148 阅读 · 0 评论 -
Bitmap拉伸后出现锯齿的几种解决办法
最近在做Flow Em时 遇到图片拉伸后出现严重锯齿的情况,后来网上查了下,经过几次尝试算是解决了问题,现在就来总结下:网上搜到的两种解决方法:1.给Paint加上抗锯齿标志。然后将Paint对象作为参数传给canvas的绘制方法。paint.setAntiAlias(true);canvas.drawBitmap(bmp ,fX,fY,paint);2.直接给canvas加抗转载 2013-09-02 14:27:25 · 6690 阅读 · 0 评论 -
android 验证码,稍微修改
package com.zcwfeng.identify;import java.util.Random;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import an转载 2013-07-02 10:24:43 · 801 阅读 · 0 评论 -
android 离线下载
==========================离线下载import java.io.BufferedInputStream;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.IOException;imp原创 2013-05-23 11:07:08 · 3677 阅读 · 0 评论 -
自己实现图片压缩技术,直接上代码,绝对好用(优化效果不错)
package photo.zipcode;import java.io.*;import java.util.logging.Level;import java.util.logging.Logger;import java.awt.*;import com.sun.image.codec.jpeg.*;import java.awt.image.Buffered原创 2013-05-23 16:23:28 · 2981 阅读 · 0 评论 -
android 自带sax解析
public class AtomParser extends DefaultHandler { // br节点高度,如果有连续的br节点,则存在br节点高度值,且该值项目组可通过brHeight配置具体大小 private int brHeight_; // 判断br节点是否连续 private int brIndex_; // 脚本文件,该内容原创 2013-02-27 16:20:10 · 719 阅读 · 0 评论 -
根据网络连接模式,激活网络
/** * 根据网络连接模式,激活网络 * * @param bv * 界面参数 */ public void openNetworkByModel(Activity bv) { try { final String CDMA777 = "#777:CDMA";原创 2013-02-27 15:02:08 · 667 阅读 · 0 评论 -
android WebView 问题积累总结
WebView有一个设置滚动条位置的属性:android:scrollbarStyle 可以是insideOverlay可以是outsideOverlay。但是在layout里面怎么设置这个属性都对WebView不起作用。mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); 就可以了java代码里面设置1.优先缓存原创 2013-02-22 14:16:06 · 1373 阅读 · 0 评论 -
Handler Looper Message MessageQueue 的关系
Android中的Handler, Looper, MessageQueue和Thread前几天,和同事探讨了一下Android中的消息机制,探究了消息的发送和接收过程以及与线程之间的关系。虽然我们经常使用这些基础的东西,但对于其内部原理的了解,能使我们更加容易、合理地架构系统,并避免一些低级错误。对于这部分的内容,将分成4小节来描述:1.职责与关系2.消息循环3.线程转载 2013-01-07 17:19:25 · 1101 阅读 · 0 评论 -
Android 功能性方法总结,待续
当用ViewFlipper做滑动时候,点击事件或者其他ListView之类会出现干扰滑动。目前最适合的解决方案重写下面的方法。/** * 这个方法会先执行,当返回为true时,才执行 onTouchEvent 方法 */ @Override public boolean dispatchTouchEvent(MotionEvent ev) {原创 2012-10-25 12:39:41 · 600 阅读 · 0 评论 -
android 项目大总结。svn可以查看学习项目。好东西分享
众多Android 开源项目推荐,给力工作给力学习FBReaderJ FBReaderJ用于Android平台的电子书阅读器,它支持多种电子书籍格式包括:oeb、ePub和fb2。此外还支持直接读取zip、tar和gzip等压缩文档。项目地址:http://www.fbreader.org/FBReaderJ/Angle Angle是一款专为Android平台设计的,适原创 2012-11-14 17:10:08 · 1704 阅读 · 0 评论 -
加载Assert资源文件类的封装
// 加载assets类class LoadAssets { public static Resources res; public LoadAssets(Resources resources) { res = resources; } public static InputStream loadf(String fileNa原创 2012-10-11 16:51:01 · 867 阅读 · 0 评论 -
Android 场景问题总结。(部分转载)
1.android dvm 的进程和Linux的进程,应用程序的进程是否为同一个概念:答:dvm是dalivk虚拟机。每一个android应用程序都在自己的进程中运行,都拥有一个dalivk虚拟机实例。而每一个dvm都是在linux的一个进程。所以说可以认为是同一个概念。2.android的动画有哪几种?他们的特点和区别是什么?答:两种,一种是tween动画,一种是frame动画。tw原创 2013-11-03 19:46:08 · 804 阅读 · 0 评论 -
不仅仅是试题,可以学点东西
1. 下列哪些语句关于内存回收的说明是正确的? (b ) A、 程序员必须创建一个线程来释放内存 B、内存回收程序负责释放无用内存 C、内存回收程序允许程序员直接释放内存 D、内存回收程序可以在指定的时间释放内存对象 2. 下面异常是属于Runtime Exception 的是(abcd)(多选) A、ArithmeticExcept转载 2013-11-03 23:11:08 · 983 阅读 · 0 评论 -
Android Video 相关操作更新中
Android Video 录屏相关 命令:android 4.4 以上录制视频命令 adb shell screenrecord --bit-rate 99999999 /sdcard/test.mp4 防止录屏 。root参见,链接下面 project 文件夹一般Video使用VideoView 继承自 SurfaceView ,所以在VideoView 里面添加如下代原创 2016-07-20 10:57:07 · 756 阅读 · 0 评论 -
Android 总结 book
Android 总结详见zcwfeng blog github.原创 2016-04-13 15:06:28 · 480 阅读 · 0 评论 -
Cordova 环境搭建(PhoneGap前身)
创建Android环境并且安装cordova需要eclipse、Andriod SDK、java、Apache ant、Node.js、Genymotion目录链接: 1.安装adt-eclipse 2.安装JAVA 3.安装Apache ant 4.使用Cordova3.0创建安卓项目 5.下载虚拟机Genymotion并安装机型1-3 的安装原创 2014-10-31 09:58:43 · 968 阅读 · 0 评论 -
开发Webview的技术,小的技术知识点
转载和总结:要想实现这种软键盘出现的时候会自动把输入框的布局顶上去的效果,需要设置输入法的属性,有以下两种设置方式: 一、在java代码中设置如下: getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE| WindowMa原创 2014-10-27 15:06:55 · 796 阅读 · 0 评论 -
AsyncTask 处理复杂多个任务。
好长时间没回到博客写东西了原创 2014-08-15 16:18:58 · 925 阅读 · 0 评论 -
半转载半总结:Activity管理---Android之后台服务判断本应用Activity是否处于栈顶
1.在Android开发中,我们经常想知道是否自己的服务处于后台运行中,因为在后台运行的服务器优先级会降低,也就极有可能会被系统给回收掉,有什么好办法呢?Google推荐我们将服务运行到前台,如何知道服务是否处于后台运行呢?可以通过获取堆栈信息中栈顶的Activity是否为本应用即可。1。下面是关健部分代码:(记得加上权限:android:name="android.permiss转载 2014-05-18 15:16:10 · 918 阅读 · 0 评论 -
Android 实现计数或者倒计时 计时器 用法Demo
...... private TimeCount time;....../* 定义一个倒计时的内部类 */ class TimeCount extends CountDownTimer { public TimeCount(long millisInFuture, long countDownInterval) {原创 2014-01-08 13:23:22 · 1997 阅读 · 0 评论 -
Sqlite 分页(http://www.cnblogs.com/shang53880/archive/2011/03/11/1981749.html)
数据库Sqlite的分页显示。 很久没有写东西了,一来是因为项目紧,没有多少时间,二来是因为最近越来越懒了。。。。 今天说说数据库的分页显示问题,都是些自己在项目中碰到的问题,写在这里,留作以后复习用。。。。 所谓数据库的分页显示,必须先要有一个数据库,先创建一个数据库。我这里用的是继承SQLiteOpenHelper的方法。具体如下:1 pa转载 2014-01-04 17:01:01 · 1208 阅读 · 0 评论 -
Android 项目编译过程
Android 工程构建的持续集成,需要搭建一套编译和打包自动化流程,比如建立每日构建系统、自动生成发布文件等等。这些都需要我们对Android工程的编译和打包有一个比较深入的理解,例如知道它的每一步都做了什么,需要什么环境和工具,输入和输出是什么,等等。 首先,假定你的系统(Windows、Linux、Mac OS都行,本文默认使用Ubuntu Linux系统来举例子,但在 Windows中转载 2013-11-28 13:21:02 · 708 阅读 · 0 评论 -
Intent与PendingIntent的区别
intent英文意思是意图,pending表示即将发生或来临的事情。 PendingIntent这个类用于处理即将发生的事情。比如在通知Notification中用于跳转页面,但不是马上跳转。 Intent 是及时启动,intent 随所在的activity 消失而消失。 PendingIntent 可以看作是对intent的包装,通常通过getActivity,getBroadc转载 2013-11-12 00:50:43 · 743 阅读 · 0 评论 -
打开android的gps
1.打开android的gpsIntent intent = new Intent();intent.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider");intent.addCategory("android.intent.category.ALT原创 2013-11-12 00:50:12 · 866 阅读 · 0 评论 -
openfire使用自定义用户表
在最近的项目中使用openfire服务器实现消息推送功能,如果使用openfire自带的用户表,需要维护两张用户表,不是很方便,如果openfire能够直接使用现有系统的用户表就方便多了,而事实上openfire已经为我们考虑到了这一点,我们只需要做一些相关配置就可以了。原理研究了下openfire的源码,发现实现此点的关键在于data provider的应用,简单来说,就是在程序中需转载 2013-11-06 20:15:41 · 1758 阅读 · 0 评论 -
sqlite 详解
上次我向大家介绍了SQLite的基本信息和使用过程,相信朋友们对SQLite已经有所了解了,那今天呢,我就和大家分享一下在Android中如何使用SQLite。现在的主流移动设备像Android、iPhone等都使用SQLite作为复杂数据的存储引擎,在我们为移动设备开发应用程序时,也许就要使用到SQLite来存储我们大量的数据,所以我们就需要掌握移动设备上的SQLite开发技巧。对于Andr转载 2013-11-04 23:38:42 · 866 阅读 · 0 评论 -
AIDL 讲解
1.什么是aidl:aidl是 Android Interface definition language的缩写,一看就明白,它是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间的通信接口icp:interprocess communication :内部进程通信 2.既然aidl可以定义并实现进程通信,那么我们怎么使用它呢?文档/android-sdk/docs转载 2013-11-04 09:04:29 · 803 阅读 · 0 评论 -
Android使用定制framework开发应用
Android系统作为目前开源移动操作系统的代表已经更新到了4.0.3版本,由于其开源的特性,使操作系统自身具备了最大限度的弹性,但同时也造成了版本的多样性,市面上所出现的都是各手机厂商或者ROM制作爱好者所修改过的系统。但是如何开发Android系统framework层那,我们知道使用Eclipse+ADT就可以进行Android 应用的开发。使用手机或模拟器进行相应效果的调试。这是标准的应转载 2013-11-04 08:01:45 · 2736 阅读 · 0 评论 -
Android五大应用框架
android应用开发框架是 Application Framework. 其系统架构由5部分组成,分别是:Linux Kernel、Android Runtime、Libraries、Application Framework、Applications。第二部分将详细介绍这5个部分。下面自底向上分析各层。 Android架构1、Linux KernelAndroid翻译 2013-11-04 00:24:47 · 2275 阅读 · 0 评论 -
Android文字居中方案
在宽width高height的画布上画一字符串,使字符串水平竖直居中: 水平居中很简单,paint.setTextAlign(Align.CENTER);然后drawText的x坐标设置为width / 2即可,竖直居中稍显麻烦,可以使用FontMetrics对象计算文字高度,然后计算baseline,使文字垂直居中,代码如下: Paint paint = new Paint();转载 2012-09-17 14:34:22 · 2597 阅读 · 2 评论 -
解决android输入法隐藏相关问题所在
// 使输入法弹出不调整整体布局 getWindow().setSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE | WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDD原创 2012-08-25 15:06:16 · 541 阅读 · 0 评论 -
解决Only the original thread that created a view hierarchy can touch its views
很多网友在Android中使用多线程处理UI相关内容时可能会发现Logcat提示Only the original thread that created a view hierarchy can touch its views这样的错误,这主要是Android的相关View和控件不是线程安全的,我们必须做独立的处理这点比J2ME麻烦一些,这里Android给 我们提供了很多方法,有关线程的,我们原创 2012-08-22 11:32:52 · 2326 阅读 · 0 评论