随笔分类 - Android
摘要:zte v880手机,ubuntu中配置真机调试,1、开启手机调试模式2、增加/etc/udev/rules.d/51-android.rules. 内容如下:SUBSYSTEM=="usb", ATTR{idVendor}=="19d2", MODE="0666", GROUP="plugdev"3、修改51-android.rules权限:chmod a+r /etc/udev/rules.d/51-android.rules4、重启udev服务:sudo restart udev5、重启adb服务:sudo
阅读全文
摘要:节点:文件、网络、管道。流节点:IO源、目标。节点流类:和某个文件或者网络直接关联的类。 文件处理节点流类FileReader、 FileInputStream 、FileOutputStrean 、FileWriter 字符串处理节点流类StringReader StringWriter 数据处理节点流类ByteArrayInputStream ByteArrayOutputStreamCharArrayReader CharArrayWriter 管道处理节点流类PipedInputStream PipedOutputStream PipedReaderPipedWriter...
阅读全文
摘要:对hint限制单行不起作用,可用ellipsize =“end"进行截断;
阅读全文
摘要:3.7 4.2的中文注释字体调整:Windows--Preferences-Appearance--Colors and Fonts --Java --Java Editor Text Font -- Edit --Courier New自动格式化ctrl + shift + F微调:Windows->preferences->Java->CodeStyle->CodeFormatter->Edit->Line Wrapping”选项卡,在“Maximun line width”指定大于多少列时换行。
阅读全文
摘要:1. svn提交.so失败a.在settings->General->Global ignore pattern中删除掉*.so项.b.使用svn add或者命令行;2.svn提交中断再次操作问题:使用svn cleanup清除相关lock,即可恢复操作。
阅读全文
摘要:1. 同一个thread: 模拟MessageQueue, looper, handler的原理; 或使用looper; 需处理结束点;2. 多个thread: 通过wait, notifyAll实现同步;
阅读全文
摘要:1、Timer是一个thread, 管理其中的TimerTask2、TimerTask:一个Runnable
阅读全文
摘要:1.google提供的在sdk中的帮助,实例,api;2.32位程序在64位linux上运行,需要安装ia32-libs;3.Android线程中异步调用完后,后台执行,模板模式回调;4.Android对象池:与sun JVM不同的内存管理机制,不建议new销毁对象,尽量复用原有对象; 系统需要更多内存时,onStop()应用,在onCreat()时恢复应用。5.包名(主Activity所在包)+签名唯一标识一个应用程序,keystore提供签名密码;6.Activity可看作Model样式的窗口,view类似Control,资源R由layout、动画、数据结构组成; Activity Sta
阅读全文
摘要:1.nm libs/armeabi/libengine.so | grep 出错行号; 找到库出错代码行的信息2.~/tk/android-ndk-r4/build/prebuilt/linux-x86/arm-eabi-4.4.0/bin/arm-eabi-objdump -D ~/workspace/work/libs/armeabi/libengine.so > temp; 类似so库的反汇编,写入temp文件,用vim temp命令模式下/出错行号,查找出错信息3.find android-ndk-r4/ -name *objdump*; 查找文件4.hd -n 100 file
阅读全文
摘要:1.ndk工具:基于ARM的交叉编译器, ndk-build:默认按jni中的Android.mk编译 ndk-build -B:重新编译2.r4不支持c中多线程,相应的2.1之前的JVM也不支持;r5与2.2后的JVM可支持;以调用引擎库为目标,将地图引擎编译为libengine.so库:1. 在android的项目中添加一个文件夹jni,jni下放置引擎.c与.h源代码;2. 编写与java代码交互的main.c接口文件,其中#include <jni.h>,提供java调用的接口,main.c中的接口方法与一个.java接口文件中的native方法对应,方法名需符合jni规范
阅读全文
摘要:目的:作为其它组件的一部分。onBind()返回IBinder, 3种定义IBinder的方式:1、继承Binder:服务app私有,仅作为后台worker thread,最简单。client直接调用service的public方法。2、Messager:可IPC,单线程。service定义一个Handler来handleMessage。Messager中有handler、IBinder属性,把所有client的请求通过messager中的handler放到一个queue中,因此service每次收到一个请求。同时处理多个请求需用AIDL。 client需要清楚service定义的messa.
阅读全文
摘要:1. Android为每个app(即apk)分配一个单独的userId,安装时赋予AndroidManifest中申请的权限,文件访问权限;默认一个app运行在单独的进程中,有独立的VM,通过唯一的userID保证访问权限,adb shell ps 可看到以app_数字开头的多个用户。多个app共用一个userID:拥有相同权限,为了节约系统资源,可运行在同一个进程、VM中,需要相同的签名证书。2. 每个app都有4中组件组成,每种组件启动都会启动app进程;通过Intent实现进程间通信。在AndroidManifest中声明的<activity>、<service>
阅读全文
摘要:可重用的activity中的模块,避免activity切换,有自己的生命周期、状态、back stack。3.0引入Fragment目的:支持大屏幕中动态灵活的UI设计。1、实质:在onCreateView()中返回的是view;类似自我实现的view栈。DialogFragment类似自我实现的dialog栈。优点:加入了显式的生命周期。2、添加fragment到activity: xml的layout中每个<fragment>需要赋予唯一的android:id/tag(非ui);3、FragmentTransaction:一系列fragment操作add、remove、repl
阅读全文
摘要:引入目的:在用户没有同app交互时可运行在后台;如果目的是在交互时不打断main thread可以使用thread,分两种:1、startService(intent):app结束后也可运行。通常执行单个操作、不返回结果。实现onStartCommand()。stopSelf()、stopService()停止。2、bindService():所有绑定的app unbind后,service被销毁;可C-S模式的IPC,跨进程通信--发送请求、获取结果。实现onBind(),返回IBinder用于与C端交互。3、service在main thread中运行,需执行耗时操作应该创建新thread
阅读全文
摘要:1. xml: 静态、较确定;2. view:runtime动态改变;3. Adapter:把datasource绑定到AdapterView的子类;如:从array获取数据,convert每项data为一个可以加到AdapterView layout 中的view;定制性较强,使用广泛,常见的有: AdapterView的子类:ListView、GridView;setAdapter(adapter,每个item的layout,dataSrc); Adapter的子类:ArrayAdapter、SimpleCursorAdapter;data改变后调用notifyDataSetChang..
阅读全文
摘要:Content Provider:C-S架构,主要用于IPC数据, S端类似Service端,实现ContentProvider; C端使用ContentResolver。S端:需求:给其它app提供复杂数据;作为copy的数据源;提供搜索建议;URI:authority保证唯一性,可用包名.provider path:
阅读全文
摘要:通过LoaderManager中的回调简化Activity与Fragment的数据加载,ContentProvider数据源通过CursorLoader来简化加载,通过SimpleCursorAdapter简化数据显示。类似Ios的tableView的数据加载效果。
阅读全文
摘要:1、默认同一个app的所有组件运行在同一个process中,<application>、<activity>、<service>中的process属性可以设置组件所属的process;默认使用<application>中的包名process,每个组件可以设置自己的process值,设置私有或者公共进程名。同一个userID和签名证书的app可共享process;IPC:内部实现RPC,Android将c端方法调用转化为OS底层可理解的数据,传递给远程进程地址空间S端,s端重新组装数据,执行方法,将结果再逆向给c端。2、进程重要性优先级--用户pr
阅读全文
摘要:1. 找到db:通常在/data/data/com.providers.contacts/databases/*.db;以/data/system/accounts.db为例; adb shell, cd /data/system/databases/;2. 打开/创建db:sqlite3 accounts.db3.查看元数据,以.开头的命令:.tables列出所有数据表;.schema查看db结构;.schema accounts查看表accounts的结构;.dump accounts逆向输出accounts表数据的insert SQL语句;4. SQL语句:以分号;结尾 select .
阅读全文