zl程序教程

android笔记

  • Android开发笔记(一百八十六)管理SQLite的利器——应用检查器App Inspection

    Android开发笔记(一百八十六)管理SQLite的利器——应用检查器App Inspection

    App开发涉及SQLite操作的时候,往往需要查看数据库保存的记录信息,最好能对数据记录手工增删改,类似使用PL/SQL管理Oracle,或者使用Navicat管理MySQL。可是以往Android系统难以手工操作SQLite,要么通过代码实现记录的增删改查;要么先把设备里的数据库db文件导出到电脑,然后使用SQLiteStudio等工具操作db文件中的记录。可见,无论采用上述的哪种方式,都不能方

    日期 2023-06-12 10:48:40     
  • android开发笔记之 Android代码混淆打包

    android开发笔记之 Android代码混淆打包

    大家好,又见面了,我是你们的朋友全栈君。 大家应该都听过代码混淆吧,如果大家有去反编译过别人的APK的话,应该会看到好多包名和类名是a,b.c….之类的的吧,这里就提到了一个概念:混淆。那就让我们了解下这个东西吧作用:为了防止自己的劳动成果被别人窃取,混淆代码能有效防止被反编译缺省情况下,proguard 会混淆所有代码,但是下面几种情况是不能改变java 元素的名称,否则就会这样就会导致程序

    日期 2023-06-12 10:48:40     
  • Android开发笔记(一百八十七)利用估值器实现弹幕动画

    Android开发笔记(一百八十七)利用估值器实现弹幕动画

    如今上网看电影电视越发流行了,追剧的时候经常看到视频上方数行评论向左边飘去,犹如子弹那样飞快掠过,这些评论文字因此得名“弹幕”。弹幕评论由正在观看的网友们即兴发表,故而连绵不绝从画面右端不断涌现,直到漂至画面左端才隐没消失。 虽然弹幕效果可使用平移动画实现,但平移动画比较单调,只能控制位移,不能控制速率、文字大小、文字颜色等要素。若想同时操纵视图的多种属性要素,需要采用属性动画加以实现。 然而

    日期 2023-06-12 10:48:40     
  • Android studio学习笔记:adb被系统空闲进程占用了怎么办?

    Android studio学习笔记:adb被系统空闲进程占用了怎么办?

    在准备run的时候,adb server报错:Unable to open connection to ADB server: java.io.IOException: Can’t find adb server on port 5037, IPv4 attempt: Connection refused: connect, IPv6 attempt: Connection refused: co

    日期 2023-06-12 10:48:40     
  • Android开发笔记(一百八十八)工作管理器WorkManager

    Android开发笔记(一百八十八)工作管理器WorkManager

    Android11不光废弃了AsyncTask,还把IntentService一起废掉了,对于后台的异步服务,官方建议改为使用工作管理器WorkManager。 其实除了IntentService之外,Android也提供了其它后台任务工具,例如工作调度器JobScheduler、闹钟管理器AlarmManager等等。当然这些后台工具的用法各不相同,徒增开发者的学习时间而已,于是乎谷歌索性把它

    日期 2023-06-12 10:48:40     
  • Android开发笔记(一百八十九)利用LAME录制MP3音频

    Android开发笔记(一百八十九)利用LAME录制MP3音频

    Android常用的录音工具有两种,分别是MediaRecorder和AudioRecord,前者用于录制普通音频,后者用于录制原始音频。然而无论是普通音频的amr和aac格式,还是原始音频的pcm格式,都不能在电脑上直接播放,也不能在苹果手机上播放,因为它们属于安卓手机的定制格式,并非通用的音频格式。若想让录音文件放之四海而皆能播放,就得事先将其转为通用的MP3格式,虽然Android官方的开发

    日期 2023-06-12 10:48:40     
  • Android开发笔记(一百九十)增强了日志功能的第二版Logcat

    Android开发笔记(一百九十)增强了日志功能的第二版Logcat

    从Android Studio Dolphin开始,查看应用日志的Logcat全面升级,堪称Logcat 2.0版本。下面就让我们看看LogcatV2.0究竟带来了什么新特性吧。 对于Android Studio的老用户来说,小海豚版本新出的LogcatV2.0在用法上有不小的差异,一开始会让人比较茫然。有些老用户可能更习惯之前的Logcat,可以通过以下办法关闭LogcatV2.0,重新启用旧

    日期 2023-06-12 10:48:40     
  • Android开发笔记最好使用eclipse

    Android开发笔记最好使用eclipse

    值得注意一点的是,虽然Myeclipse比eclipse功能更强大,但是在具体的安卓开发过程当中,最好还是选用eclipse,sdk跟eclipse的兼容性更好,用Myeclipse的话容易出现各种小问题,如不能自动生成R文件等,晚上我就遇到了一回,怎么搞都搞不明白。查了一下才知道不是个例,clean、刷新、重启、自动built等都不好使,目前还没有比较好的解决方法,所以还是建议使用eclips

    日期 2023-06-12 10:48:40     
  • Android笔记之:App列表之下拉刷新的使用

    Android笔记之:App列表之下拉刷新的使用

    Android的ListView是应用最广的一个组件,功能强大,扩展性灵活(不局限于ListView本身一个类),前面的文章有介绍分组,拖拽,3D立体,游标,圆角,而今天我们要介绍的是另外一个扩展ListView:下拉刷新的ListView。  下拉刷新界面最初流行于iphone应用界面,如图:   然后在Android中也逐渐被应用,比如微博,资讯类。  所以,今天要实现的结果应该也是类似的,

    日期 2023-06-12 10:48:40     
  • Android笔记之:App调试的几个命令的实践与分析

    Android笔记之:App调试的几个命令的实践与分析

    在Android的应用开发中,我们会用到各种代码调试;其实在Android的开发之后,我们可能会碰到一些随机的问题,如cpu过高,内存泄露等,我们无法简单的进行代码调试,我们需要一个系统日志等等,下面我把握工作中碰到的几个常用命令和方法给大家演示实践一下。 1.logcat命令这个命令最简单常用,可查看帮助,我不多说,如果需要打印时间,加参数-vtimeadblogcat-vtime 2.bug

    日期 2023-06-12 10:48:40     
  • Android开发笔记之:深入理解Cursor相关的性能问题

    Android开发笔记之:深入理解Cursor相关的性能问题

    当数据库中存有大量数据的时候,用Cursor查询时要注意,有可能引发性能问题。数据库查询出来的Cursor都会由一个CursorWindow来进行数据管理,包括内存空间的申请和数据的填充。CursorWindow对Cursor中的内容大小有限制,限制为1024*1024也就是1M,换句话说Cursor中数据的大小不能超过1M,如果超过1M会引发如下的错误:复制代码代码如下:08-2305:48:

    日期 2023-06-12 10:48:40     
  • Android开发笔记之:Dialog的使用详解

    Android开发笔记之:Dialog的使用详解

    Dialog是任何系统都必须有的一个控件,作为辅助窗口,用于显示一些消息,或请求用户采取一引起操作等。在Android中也不例外,基本使用可能参看文档。使用时的注意事项1.BACK键能取消掉对话框(dismiss),但是却不会触发其onOkey和onCancel回调接口,所以如果你的对话框会改某些状态,一定要注意还有第三种方式取消对话框。2.尽量少用模态对话框(Modeldialog),如果Di

    日期 2023-06-12 10:48:40     
  • Android开发笔记之:用Enum(枚举类型)取代整数集的应用详解

    Android开发笔记之:用Enum(枚举类型)取代整数集的应用详解

    在Android的API中可以发现有很多用整数集来作为参数的地方,先来看一下实例。LinearLayout是大家所熟知的一个UI基本元素,它里面有一个方向的属性,可以通过以下方法来设置:复制代码代码如下:LinearLayout.setOrientation(int);使用的时候,通常都是这样:复制代码代码如下:LinearLayout.setOrientation(LinearLayout.H

    日期 2023-06-12 10:48:40     
  • Android开发笔记之:消息循环与Looper的详解

    Android开发笔记之:消息循环与Looper的详解

    UnderstandingLooperLooper是用于给一个线程添加一个消息队列(MessageQueue),并且循环等待,当有消息时会唤起线程来处理消息的一个工具,直到线程结束为止。通常情况下不会用到Looper,因为对于Activity,Service等系统组件,Frameworks已经为我们初始化好了线程(俗称的UI线程或主线程),在其内含有一个Looper,和由Looper创建的消息队

    日期 2023-06-12 10:48:40     
  • Android笔记之:在ScrollView中嵌套ListView的方法

    Android笔记之:在ScrollView中嵌套ListView的方法

    前几天因为项目的需要,要在一个ListView中放入另一个ListView,也即在一个ListView的每个ListItem中放入另外一个ListView。但刚开始的时候,会发现放入的小ListView会显示不完全,它的高度始终有问题。上网查了下,发现别人也有遇到这样的问题,而大多数人都不推荐这样的设计,因为默认情况下Android是禁止在ScrollView中放入另外的ScrollView的,

    日期 2023-06-12 10:48:40     
  • Android开发笔记之:HandlerRunnable与Thread的区别详解

    Android开发笔记之:HandlerRunnable与Thread的区别详解

    在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口;Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限。下面看例子:复制代码代码如下:package org.thread.demo;class MyThread extends 

    日期 2023-06-12 10:48:40     
  • Android开发笔记之:如何屏蔽ButtonsetClickable与setEnabled

    Android开发笔记之:如何屏蔽ButtonsetClickable与setEnabled

    今天想让按键暂时无效,满足一定条件下才可以被用户按到。最初以为是setClickable,谁知搞错了。请看手册:复制代码代码如下:publicvoidsetClickable(booleanclickable)Since:APILevel14Setswhetherthisnodeisclickable.Note:CannotbecalledfromanAccessibilityService.T

    日期 2023-06-12 10:48:40     
  • Android学习笔记——Menu介绍(一)

    Android学习笔记——Menu介绍(一)

    背景: Android3.0(APIlevel11)开始,Android设备不再需要专门的菜单键。 随着这种变化,Androidapp应该取消对传统6项菜单的依赖。取而代之的是提供anctionbar来提供基本的用户功能。                     创建3种基本的菜单 Optionsmenu(选项菜单)和actionbar 选项菜单是放置在app中具有全局影响的功能,例如“搜索”,

    日期 2023-06-12 10:48:40     
  • Android学习笔记(二)App工程文件分析

    Android学习笔记(二)App工程文件分析

    App工程文件分析 关于如何创建一个最简单的AndroidApp请参照链接: 创建完的工程文件如下图所示,本文对一些主要的文件进行分析。 src文件分析 App源文件如图: 打开源文件MainActivity.java可看到如下代码: 源码主要功能如下: App源文件目录 packagecom.example.firstapp; 导入App所需的类 importandroid.os.Bu

    日期 2023-06-12 10:48:40     
  • 【Android平台】 Alljoyn学习笔记四 Android Core API参考

    【Android平台】 Alljoyn学习笔记四 Android Core API参考

    There are several samples provided as part of the AllJoyn™ framework. The samples may be found in the AllJoyn SDK in the java/samples folder. NOTE: If you wish to start a new AllJoyn project instead,

    日期 2023-06-12 10:48:40     
  • 【Android平台】Alljoyn学习笔记一  Alljoyn简介

    【Android平台】Alljoyn学习笔记一 Alljoyn简介

    【什么是Alljoyn】 AllJoyn官网中将其描述为“一个能够使连接设备之间进行互操作的通用软件框架和系统服务核心集,也是一个跨制造商来创建动态近端网络的软件应用”。 Linux基金会表示,该开源框架允许在特定的系统之间无缝发现、动态连接,并可以与附近的产品进行交互,无论该产品是什么品牌、传输层、平台或操作系统。 该框架不依赖于特定的通信协议,因此它可以工作在WiFi、蓝牙、以太网或

    日期 2023-06-12 10:48:40     
  • 大话企业级android读书笔记(一)

    大话企业级android读书笔记(一)

    Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。目前尚未有统一中文名称,中国大陆地区较多人使用安卓(非官方)或安致(官方)。Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。 2010年末数据显示,仅正式推出两年的操作系统的Android

    日期 2023-06-12 10:48:40     
  • 《android开发进阶从小工到专家》读书笔记--网络框架的设计与实现

    《android开发进阶从小工到专家》读书笔记--网络框架的设计与实现

    第一步: 第一层:Request--请求类型,JSON,字符串,文件 第二层:消息队列--维护了提交给网络框架的请求列表,并且根据响应的规则进行排序。默认情况下按照优先级和进入队列的顺序来执行,该队列使用的是线程安全的PriorityBlockingQueue<E>,因为我们的队列会被并发访问,因此需要保证队列访问的原子性 第三层:NetworkExecutor--网络执行者,该E

    日期 2023-06-12 10:48:40     
  • 《android开发艺术探索》读书笔记(十三)--综合技术

    《android开发艺术探索》读书笔记(十三)--综合技术

    接上篇《android开发艺术探索》读书笔记(十二)--Bitmap的加载和Cache No1: 使用CrashHandler来获取应用的crash信息 No2: 在Android中单个dex文件所能够包含的最大方法数为65536,这包含Android FrameWork、依赖的jar包以及应用本身的代码中的所有方法。 No3: 使用multidex来解决方法数越界 apply plugin:

    日期 2023-06-12 10:48:40     
  • 《android开发艺术探索》读书笔记(十)--Android的消息机制

    《android开发艺术探索》读书笔记(十)--Android的消息机制

    接上篇《android开发艺术探索》读书笔记(九)--四大组件 No1: 消息队列MessageQueue的内部存储结构并不是真正的队列,而是采用单链表的数据结构来存储消息列表,因为单链表在插入和删除上比较有优势 No2: ThreadLocal可以在不同的线程中互不干扰地存储并提供数据,通过ThreadLocal可以轻松获取每个线程的Looper。 No3: 线程默认是没有Looper的,如果

    日期 2023-06-12 10:48:40     
  • 《android开发艺术探索》读书笔记(六)--Drawable

    《android开发艺术探索》读书笔记(六)--Drawable

    接上篇《android开发艺术探索》读书笔记(五)--RemoteViews 【BitmapDrawable】 简单的图片 <!xml version="1.0" encoding="utf-8"?> <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="

    日期 2023-06-12 10:48:40     
  • 《android开发艺术探索》读书笔记(二)--IPC机制

    《android开发艺术探索》读书笔记(二)--IPC机制

    接上篇《android开发艺术探索》读书笔记(一) No1: 在android中使用多进程只有一种方法,那就是给四大组件在AndroidMenifest中指定android:process属性。 No2: 默认进程的进程名是包名。 No3: ":"要加上当前包名,进程属于当前应用的私有进程,其他应用的组件不可以和它跑在同一个进程中;另外一种属于全局进程,其他应用通过ShareUID方式可以和

    日期 2023-06-12 10:48:40     
  • 《深入理解Android2》读书笔记(三)

    《深入理解Android2》读书笔记(三)

    接上篇《深入理解Android2》读书笔记(二) PackageManagerService  PackageManagerService负责系统中Package的管理,应用程序的安装、卸载、信息查询等。 1.IPackageManager接口类中定义了服务端和客户端通信的业务函数,还定义了内部类Stub,该类从Binder派生并实现了IPackageManager接口。 2.Pac

    日期 2023-06-12 10:48:40     
  • 《深入理解Android2》读书笔记(五)

    《深入理解Android2》读书笔记(五)

    接上篇《深入理解Android2》读书笔记(四) startActivity Am void run() throws RemoteException { try { printMessageForState(); mAm.setActivityController(this); mState = STATE_NORMAL;

    日期 2023-06-12 10:48:40     
  • 《深入理解Android2》读书笔记(七)

    《深入理解Android2》读书笔记(七)

    接上篇《深入理解Android2》读书笔记(六) 广播接受者 注册 ContextImpl @Override public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter) { return registerReceiver(receiver, filter, null, null); }

    日期 2023-06-12 10:48:40     
  • [APP] Android 开发笔记 003-使用Ant Release 打包与keystore加密说明

    [APP] Android 开发笔记 003-使用Ant Release 打包与keystore加密说明

    接上节 [APP] Android 开发笔记 002 5. 使用ant release 打包   1)制作 密钥文件 release.keystore (*.keystore)    keytool -genkey -v -keystore "release.keystore" -alias "release" -keyalg "RSA" -validity "10000" &nb

    日期 2023-06-12 10:48:40