`
文章列表
作为一个项目经理,或有志成为项目经理的程序员,工具可以帮我们节省很多时间,用更好的效果推进项目;下面结合我在项目中使用的工具,做一个总结: 项目经理在带项目过程中必备的一些工具,下面列的一些工具偏技术管理: 一、office: 1、Word:最基础的办公软件,项目内部沟通,项目交付等项目中各类文档编写都要用Word实现,如:需求文档、设计文档;要掌握的功能如:排版、绘图、目录、封面等等。 2、Excel:更擅长于有规律数据的处理,如:报表、统计表等;项目中如:bug统计表、项目情况分析表等等; 3、PPT:擅长于演示,如:项目情况内部汇报、客户汇报等,结合各类图形、表格、流程等内容; 二、建模 ...
1、CopyOnWriteArrayList add(E) 和remove(int index)都是对新的数组进行修改和新增。所以在多线程操作时不会出现java.util.ConcurrentModificationException错误。 所以最后得出结论:CopyOnWriteArrayList适合使用在读操作远远大于写操作的场景里,比如缓存。发生修改时候做copy,新老版本分离,保证读的高性能,适用于以读为主的情况。 参考:http://my.oschina.net/jielucky/blog/167198 2、include标签:如果include中设置了id,那么就通过include ...
用Android studio可以很方便的完成代码的测试工作,比之前在Eclipse里面做测试方便多了,下面简单总结一下: 一、创建测试目录结构: 一般在工程根目录下创建androidTest文件夹,里面按照src包名结构创建目录,然后就可以创建测试文件了,如图: 也可以在module的build文件进行指定测试路径: androidTest { java.srcDirs = ['androidTest/java'] assets.srcDirs = ['androidTest/assets/'] } ...
一、base cmd 1、挂载文件系统:mount -o remount /dev/block/mtdblock0 /system 2、拷贝文件:cp /storage/emulated/legacy/a.apk /system/app/a.apk 3、启动指定APP:adb shell am start -n com.test.shellsample/com.test.shellsample.MainActivity 4、修改文件夹及子目录权限:chmod -R 777 data 二、studio 1、装箱打包生成APK:gradlew assemble 三、Android W ...
一、与MediaPlayer的对比: SoundPool适合短且对反应速度比较高的情况(游戏音效或按键声等),文件大小一般控制在几十K到几百K,最好不超过1M,可以与MediaPlayer同时播放,SoundPool也可以同时播放多个声音;最终编解码实现与MediaPlayer相同; MediaPlayer只能同时播放一个声音,加载文件有一定的时间,适合文件比较大,响应时间要是不是非常高的场景; 二、创建: SoundPool soundPool = new SoundPool(3, AudioManager.STREAM_MUSIC, 0); maxStream —— 同时播放的流的最大数 ...
项目发布之前混淆是必不可少的工作,混淆可以增加别人反编译阅读代码的难度,还可以缩小APK包。 一、使用原理: 见:ProGuard的作用、使用及bug分析(http://www.trinea.cn/android/proguard-use/); Proguard语法及常用proguard.cfg代码段(http://www.trinea.cn/android/proguard-grammar/); 二、使用步骤: 1、修改project.properties文件: # To enable ProGuard to shrink and obfuscate your code, uncomm ...
Android蓝牙部分是很复杂的,也涉及很多名词,下面把我涉及到的一些常用名词做一个简单的解释: 1、a2dp: 蓝牙立体声,和蓝牙耳机听歌有关那些,另还有个avrcp--音频/视频远程控制配置文件,是用来听歌时暂停,上下歌曲选择的。 Android only supports one connected Bluetooth A2dp device at a time. Each method is protected with its appropriate permission.(一次只允许连接一个A2DP设备) 操作类位置:android.bluetooth.BluetoothA2dp ...
UUID是“Universally Unique Identifier”的简称,通用唯一识别码的意思。对于蓝牙设备,每个服务都有通用、独立、唯一的UUID与之对应。也就是说,在同一时间、同一地点,不可能有两个相同的UUID标识的不同服务。    在Android手机开发中不必过多考虑这点在这一点,因为几乎没有哪个手机会同时装两块蓝牙芯片。 ServiceDiscoveryServerServiceClassID_UUID = '{00001000-0000-1000-8000-00805F9B34FB}' BrowseGroupDescriptorServiceClassID_UUID = ...
在Android程序中可以实现自动扫描蓝牙、配对蓝牙、建立数据通道。 蓝牙分不同类型,可以参考(http://gqdy365.iteye.com/admin/blogs/2229304) 可以入下面方法获取蓝牙设备支持的类型: BluetoothDevice device; Arrays.toString(device.getUuids()); 我的蓝牙音箱支持的类型有: 0000111e-0000-1000-8000-00805f9b34fb:Handsfree 0000110b-0000-1000-8000-00805f9b34fb:AudioSink 0000110e- ...
要在应用程序中操作GPS开关需要权限: <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> 但在配置文件中添加此权限之后会报错,无法再eclipse里面正常编译,怎么办? 1、方法一:将项目放到Android源码中编译; 2、方法二:网上有人说clean一下,果然有效果; 正常编译之后安装,添加权限了也报错,无法正常运行。 研究之后发现还需要System共享权限,就是: android:sharedUserId="android.uid.sy ...
Android应用的启动顺序网上有一大堆资料可以查阅了,这里就不细述了,这里不阐述ROM启动还有bootloader,软件启动的大致流程应该是启动kernel -> 运行servicemanager 把一些native的服务用命令启动起来(包括wifi, power, rild, surfaceflinger, mediaserver等等)-> 启动Dalivk中的第一个进程Zygote -> 启动java 层的系统服务system_server(包括PowerManagerService, ActivityManagerService , telephony.registry ...
使用SQLiteDatabase的beginTransaction()方法可以开启一个事务,程序执行到endTransaction() 方法时会检查事务的标志是否为成功,如果程序执行到endTransaction()之前调用了setTransactionSuccessful() 方法设置事务的标志为成功则提交事务,如果没有调用setTransactionSuccessful() 方法则回滚事务。事务处理应用:很多时候我们需要批量的向Sqlite中插入大量数据时,单独的使用添加方法导致应用响应缓慢, 因为sqlite插入数据的时候默认一条语句就是一个事务,有多少条数据就有多少次磁盘操作。如初始80 ...
转载自:http://www.cnblogs.com/mengdd/archive/2013/02/16/2913806.html 多线程的同步机制对资源进行加锁,使得在同一个时间,只有一个线程可以进行操作,同步用以解决多个线程同时访问时可能出现的问题。 同步机制可以使用synchronized关键 ...
先看一下效果图: 要实现在每个页面显示相同的Title,能想到的办法有: 1、创建单独的xml布局文件,在页面主配置文件中用include标签引入,如果要修改内容,可以再代码中获取View,修改内容; 2、用Android提供的Theme(在新建项目时可选),toolbar ,ActionBarActivity可以实现现在流行的material design,不过ActionBarActivity已经被AppCompatActivity取代了; 3、在1的基础上引入面向对象的思想,抽象出基类Activity(Fragment)。 下面记录一下3的实现过程: 1、新建抽象的Activity ...
led灯的控制在http://gqdy365.iteye.com/admin/blogs/2208344中写的方法是直接通过操作led设置来控制灯的开关。这样做的问题是未按Android标准结构实现,可能存在潜在的问题,后面分析的一下灯的源码,原来Android系统里面已经提供的相关的实现。 Android系统标准的led可以通过发送通知来控制led灯,做法如下: private void notificactionLed() { NotificationManager manager = (NotificationManager) this .getSystemSer ...
Global site tag (gtag.js) - Google Analytics