hd.mp4.property用hdmp4是什么格式打开

404 Not Found
404 Not Found
The requested URL was not found on this server.
您要找的内容已被删除发表了一篇文章
通过几段小程序深入分析了C语言中字面字符串(literal string)的特点以及正确的使用方式。
发表了一篇文章
出现这种情况下相信大家都会很烦恼的,我用的是阿里云需要数据库重置密码,mysql 5.1.48更改数据库密码后,阿里云提示让你修改字符串,然后打开网站出现这种情况,搜索了下相关解决的方案,我看主要是…
发表了一篇文章
上一篇我们讲的是情商的五要素以及什么是三无管理者,本文将继续探讨,三无管理者如何进行团队的管理。
发表了一篇文章
反过来在 Java 中调用 Kotlin 也毫无压力,官方文档 对于常见的情况作了比较详细的阐述,这里就不再赘述。
3、简洁,可靠,有趣
3.1 数据类
最初学 Java 的时候,学到一个概念叫 JavaBean,当时就要被这个概念给折磨死了。明明很简单的一个东西,结果搞得很复杂的样子,而且由于当时对于这些数据类的设计概念不是很清晰,因而也并不懂得去覆写诸如 equals 和 hashcode 这样重要的方法,一旦用到 HashMap 这样的集合框架,总是出了问题都不知道找谁。
Kotlin 提供了一种非常简单的方式来创建这样的数据类,例如:
仅仅一行代码,Kotlin 就会创建出一个完整的数据类,并自动生成相应的 equals、hashcode、toString 方法。是不是早就受够了 getter和setter?反正我是受够了。
3.2 空安全与属性代理
第一次见到空类型安全的设计是在
当中,那时候还觉得这个东西有点儿意思哈,一旦要求变量不能为空以后,因它而导致的空指针异常的可能性就直接没有了。想想每次 QA 提的 bug 吧,说少了都得有三分之一是空指针吧。
Kotlin 的空安全设计,主要是在类型后面加?表示可空,否则就不能为 null。
使用时,则:
而对于 Java 代码,比如我们在覆写 Activity 的 onCreate 方法时,有个参数 savedInstanceState:
这表示编译器不再强制 savedInstanceState 是否可 null,开发者在覆写时可以自己决定是否可 null。当然,对于本例,onCreate 的参数是可能为 null 的,因此覆写以后的方法应为:
通常来讲,教科书式的讲法,到这里就该结束了。然而直到我真正用 Kotlin 开始写代码时,发现,有些需求实现起来真的有些奇怪。
还是举个例子,我需要在 Activity 当中创建一个 View 的引用,通常我们在 Java 代码中这么写:
在 Kotlin 当中呢?
每次用 aTextView 都要加俩!,不然编译器不能确定它究竟是不是 null,于是不让你使用。。这尼玛。。。到底是为了方便还是为了麻烦??
所以后来我又决定这么写:
这可如何是好??
其实 Kotlin 肯定是有办法解决这个问题哒!比如上面的场景,我们这么写就可以咯:
lazy 是 Kotlin 的属性代理的一个实例,它提供了延迟加载的机制。换句话说,这里的 lazy 提供了初始化 aTextView 的方法,不过真正初始化这个动作发生的时机却是在 aTextView 第一次被使用时了。lazy 默认是线程安全的,你当然也可以关掉这个配置,只需要加个参数即可:
好,这时候肯定有人要扔西红柿过来了(再扔点儿鸡蛋呗),你这 lazy 只能初始化 val 啊,万一我要定义一个 var 成员,又需要延迟初始化,关键还不为 null,怎么办??
lateinit 的使用还是有很多限制的,比如只能在不可 null 的对象上使用,比须为var,不能为 primitives(Int、Float之类)等等,不过这样逼迫你一定要初始化这个变量的做法,确实能减少我们在开发中的遗漏,从而提高开发效率。
至于 lazy 技术,实际上是 Delegate Properties 的一个应用,也就是属性代理了。在 Kotlin 当中,声明成员属性,除了直接赋值,还可以用 Delegate 的方式来声明,这个 Delegate 需要根据成员的类型(val 或者 var)来提供相应的 getValue 和 setValue 方法,比如一个可读写的 Delegate,需要提供下面的方法:
好嘴皮不如来个栗子,下面我们就看一个自定义 Delegate,用来访问 SharedPreference:
需要说明的是,这段代码是我从《Kotlin for Android Developer》的示例中摘出来的。有了这个 Delegate 类,我们就可以完全不需要关心 SharedPreference了,下面给出使用的示例代码:
于是我们再也不需要重复写那些 getSharedPreference,也不用 edit、commit,再见那些 edit 之后忘了 commit 的日子。有没有觉得非常赞!
3.3 扩展类
扩展类,就是在现有类的基础上,添加一些属性或者方法,当然扩展的这些成员需要导入当前扩展成员所在的包才可以访问到。下面给出一个例子:
我们已经介绍过 data class,Coordinate 有两个成员分别是 x 和 y,我们知道通常表示一个二维平面,有这俩够了;然而我们在图形学当中经常会需要求得其极坐标,所以我们扩展了 Coordinate,增加了一个属性 theta 表示角度(反正切的值域为 -π/2 ~ π/2,所以这个式子不适用于二三象限,不过这不是重点了),增加了一个 R 方法来获得点的半径,于是我们在 main 方法中就可以这么用:
那么这个扩展有什么限制呢?
在扩展成员当中,只能访问被扩展类在当前作用域内可见的成员,本例中的x 和 y 都是 public 的(Kotlin 默认 public,这个我们后面会提到),所以可以在扩展方法和属性中直接访问。
扩展成员与被扩展类的内部成员名称相同时,扩展成员将无法被访问到
好的,基本知识就是这些了,下面我们再给出一个实际的例子。
通常我们在 Java 中会自定义一些 LogUtils 类来打日志,或者直接用 android.util.log 来输出日志,不知道大家是什么感受,我反正每次因为要输入 Log.d 还要输入个 tag 简直烦的要死,而且有时候恰好这个类还没有 tag 这个成员,实践中我们通常会把当前类名作为 TAG,但每个类都要做这么个工作,是在是没有什么趣味可言(之前我是用 LiveTemplates 帮我的,即便如此也没有那种流畅的感觉)。
有了 Kotlin 的这个扩展功能,日子就会好过得多了,下面我创建的一个打日志的方法:
有了这个方法,你可以在任何类的方法体中直接写:
然后就会输出以这个类名为 TAG 的日志。
嗯,这里需要简单介绍 Kotlin 在泛型中的一个比较重要的增强,这个在 Java 中无论如何也是做不到的:inline、reified。我们再来回头看一下 debug 这个方法,我们发现它可以通过泛型参数 T 来获取到T的具体类型,并且拿到它的类名——当然,如果你愿意,你甚至可以调用它的构造方法来构造一个对象出来——为什么 Kotlin 可以做到呢?因为这段代码是 inline 的,最终编译时是要编译到调用它的代码块中,这时候T的类型实际上是确定的,因而 Kotlin 通过 reified 这个关键字告诉编译器,T 这个参数可不只是个摆设,我要把它当实际类型来用呢。
为了让大家印象深刻,我下面给出类似功能的 Java 的代码实现:
而你如果说希望在 Java 中也希望像下面这样拿到这个泛型参数的类型,是不可以的:
就算我们在调用处会写道 debug & Date &(“blabla”),但这个 Date 在编译之后还是会被擦除。
3.4 函数式支持(Lambdas)
Java 8 已经开始可以支持 Lambda 表达式了,这种东西对于 Java 这样一个『根红苗正』的面向对象编程语言来说还真是显得不自然,不过对于 Kotlin 来说,就没那么多顾忌了。
通常我们需要执行一段异步的代码,我们会构造一个 Runnable 对象,然后交给 executor,比如这段 java 代码:
用 Kotlin 怎么写呢?
一下子省了很多代码。
那么实际当中我们可能更常见到下面的例子,这是一段很常见的 Java 代码,在
Android 的 UI 初始化会见到:
那么我们用 Kotlin 怎么写呢?
在 Anko 这个 Android 库的帮助下,我们甚至可以继续简化 OnClickListener 的设置方式:
当然,好玩的不止这些,如果结合上一节我们提到的扩展方法,我们就很容易看到 Kotlin 的标准库提供的类似 with 和 apply 这样的方法是怎么工作的了:
我们通常会在某个方法体内创建一个对象并返回它,可我们除了调用它的构造方法之外还需要做一些其他的操作,于是就要创建一个局部变量。。。有了 apply 这个扩展方法,我们就可以这么写:
这样返回的 StringBuilder 对象实际上是包 "whatever" 这个字符串的。
至于说 Kotlin 对于 RxJava 的友好性,使得我突然有点儿相信缘分这种东西了:
3.5 Pattern Matching
记得之前在浏览 Scala 的特性时,看到:
觉得很新鲜,这时候有个朋友不屑的说了句,Scala 的模式匹配才真正犀利——Kotlin 当中也有这样的特性,我们下面就来看个例子:
咋一看感觉 when 表达式就是一个增强版的 switch——Java 7 以前的 switch 实际上支持的类型非常有限,Java 7 当中增加的对 String 的支持也是基于 int 类型的——我们可以看到 when 不再像 switch 那样只匹配一个数值,它的子式可以是各种返回 Boolean 的表达式。
when 表达式还有一种写法更革命:
只要是返回 Boolean 的表达式就可以作为 when 的子式,这样 when 表达式的灵活性可见一斑。当然,与 Scala 相比,Kotlin 还是要保守一些的,下面给出一个 Scala 类似的例子,大家感受一下,这实际上也可以体现出 Kotlin 在增加 Java 的同时也尽量保持简单的设计哲学(大家都知道,毕竟 Scala 需要智商o(╯□╰)o)。
运行结果如下:
3.6 如果你是一个SDK开发者
我曾经做过一段时间的 SDK 开发,SDK 的内部有很多类其实是需要互相有访问权限的,但一旦类及其成员是 public 的,那么调用方也就可以看到它们了;而 protected 或者 default 这样的可见性对于子包却是不可见的。
用了这么久 Java,这简直是我唯一强烈感到不满的地方了,甚至于我突然明白了 C++ 的 friend 是多么的有用。
Kotlin 虽然没有提供对于子包可见的修饰符,不过它提供了i nternal:即模块内可见。换句话说,internal 在模块内相当于 public,而对于模块外就是 private 了——于是乎我们如果开发 SDK,那么可以减少 api 层的编写,那些用户不可见的部分直接用 internal 岂不更好。当然有人会说我们应当有 proguard 做混淆,我想说的是,proguard 自然是要用到的,不过那是 SDK 这个产品加工的下一个环节了,我们为什么不能在代码级别把这个事情做好呢?
关于Kotlin的默认可见性究竟是哪个还有人做出过讨论,有兴趣的可以参考这里: (https://discuss.kotlinlang.org/t/kotlins-default-visibility-should-be-internal/1400)。
其实我们对 DSL 肯定不会陌生,gradle 的脚本就是基于 groovy 的 DSL,而 Kotlin 的函数特性显然也是可以支持 DSL 的。比如,我们最终要生成下面的 xml 数据:
我们可以构建下面的类:
我们看到在 main 方法当中,我们用 Kotlin 定义的 dsl 写出了一个 Project 对象,它有这与 xml 描述的一致的结构和含义,如果你愿意,可以构造相应的方法来输出这样的 xml,运行之后的结果:
当然,这个例子做的足够的简陋,如果你有兴趣也可以抽象出 "Element",并为之添加 "Attributes",实际上这也不是很难。
3.7 Kotlin与Android的另一些有趣的东西
写了很多代码,却发现它们干不了多少事情,终究还是会苦恼的。比如我一直比较痛苦的一件事儿就是:
如果我需要很多个按钮和图片,那么我们要写一大片这样的 findViewById。。妈呀。。。这活我干不了啦。。
不过用 Kotlin 的 Android 扩展插件,我们就可以这样:
先上布局文件:
在 Activity 中:
导入这一句之后,我们就可以直接在代码中使用 start、textView,他们分别对应于 main.xml 中的 id 为 start 的按钮和 id 为 textView 的 TextView。
于是你就发现你再也不用 findViewById 了,多么愉快的一件事!!!当然,你还会发现 Toast 的调用也变得简单了,那其实就是一个扩展方法 toast();而 startActivity 呢,其实就是一个 inline加reified 的应用——这我们前面都提到过了。
还有一个恶心的东西就是 UI 线程和非 UI 线程的切换问题。也许你会用 handler 不断的 post,不过说真的,用 handler 的时候难道你不颤抖么,那可是一个很容易内存泄露的魔鬼呀~哈哈,好吧其实我不是说这个,主要是用 handler 写出来的代码 实在 太 丑 了 !!
原来在 Java 当中,我们这么写:
而在 Kotlin 当中呢,我们只需要这么写:
自己感受一下吧。
下面我们再来提一个有意思的东西,我们从做 Android 开发一开始就要编写 xml,印象中这个对于我来说真的是一件痛苦的事情,因为它的工作机制并不如代码那样直接(以至于我现在很多时候居然喜欢用 Java 代码直接写布局)——当然,最主要的问题并不是这个,而是解析 xml 需要耗费 CPU。Kotlin 有办法可以解决这个问题,那就是 DSL 了。下面给出一个例子:
一个 LinearLayou t包含了一个 Button,这段代码你可以直接写到你的代码中灵活复用,就像这样:
这样做的好处真是不少:
比起 xml 的繁琐来,这真是要清爽很多
布局本身也是代码,可以灵活复用
再也不用 findViewById 了,难道你不觉得在这个上面浪费的生命已经足够多吗
事件监听很方便的嵌到布局当中
DSL 方式的布局没有运行时的解析的负担,你的逻辑代码怎么运行它就怎么运行
Anko还增加了更多好玩的特性,有兴趣的可以参考: (/Kotlin/anko)
3.8 方法数之痛
我曾经尝试用 Scala 写了个 Android 的 HelloWorld,一切都配置好以后,仅仅引入了 Scala 常见的几个库,加上 support-v4 以及 appcompat 这样常见的库,结果还是报错了。是的,65K。。。而且用 Scala 开发 Android 的话,基于 gradle 的构建会让整个 app 的 build 过程异常漫长,有时候你会觉得自己悟出了广义相对论的奥义,哦不,你一定是晕了,时间并没有变慢。
相比之下,Kotlin 的标准库只有 7000 个方法,比 support-v4 还要小,这正反映了 Kotlin 的设计理念:100% interoperable with Java。其实我们之前就提到,Java 有的 Kotlin 就直接拿来用,而 Scala 的标准库要有 5W 多个方法,想想就还是想想算了。
目前 Kotlin 1.0 已经 release,尽管像 0xffffffff 识别成 Long 类型这样的 bug 仍然没有解 (/oauth?state=%2Fissue%2FKT-4749):
不过,Kotlin 的教学资源和社区建设也已经相对成熟,按照官方的说法,Kotlin可以作为生产工具投入开发,详情可以参考: (/kotlin/2016/02/kotlin-1-0-released-pragmatic-language-for-jvm-and-android/)。
敢于吃螃蟹,多少有些浪漫主义色彩,我们这些程序员多少可以有些浪漫主义特质,不过在生成环境中,稳定高于一切仍然是不二法则。追求新技术,一方面会给团队带来开发和维护上的学习成本,另一方面也要承担未来某些情况下因为对新技术不熟悉而产生未知问题的风险——老板们最怕风险了~~
基于这一点,毫无疑问,Kotlin 可以作为小工具、用例等的开发工具,这是考虑到这些代码通常体量较小,维护人数较少较集中,对项目整体的影响也较小;而对于核心代码,则视情况而定吧。
就我个人而言,长期下去,Kotlin 很大可能会成为我的主要语言,短期内则仍然采用温和的改革方式慢慢将Kotlin 渗透进来。
1.1 Kotlin的身世
写了许久 Java,有没有发现其实你写了太多冗余的代码?
后来你体验了一下 Python,有没有觉得不写分号的感觉真是超级爽?
你虽然勤勤恳恳,可到头来却被 N…
发表了一篇文章
3,我又重新编译,结果报Android Studio 混淆打包 IOException: Please correct the above warnings first,形如下面的错误
好吧,我打开混淆文件(proguard-rules),首先我看到有人把下面的ignorewarning注释了,我擦,然后关闭,打包成功,不过这里加上下面的一段话
说说今天打包遇到的坑,由于线上有个支付的bug需要紧急修复,而我们的项目又没有使用热修复,所以只能通过编译打包等传统流程,还好Android上线比较快。
说说我进早上打包遇到的几个问题吧,首先我使用…
发表了一篇文章
PostgreSQL , 少量not in大量 , 收敛优化 , 递归优化
有一个这样的场景,一张小表A,里面存储了一些ID,大约几百个(比如说巡逻车辆ID)。
另外有一张日志…
发表了一篇文章
正则表达式被用来定义文本的格式,而深度学习则被广泛应用在语音识别,机器翻译,计算机视觉等方面。当它们结合起来,会迸发出怎样的火花呢?
评论了该文章
我入行快三年了,被人面试过也面试过人,我来给大家分享一下我面试别人的两个有趣经历吧:
1、有一天我穿着环信的T恤,前胸是一个巨大的环信logo,后颈是环信的logo和“环信”俩字的那种。
下午有个自称两年经验的Android来面试,表格上填的期望薪资比我还高。
以下是我俩的对话:
我:能说说Fragment的生命周期吗?
他:不知道
我:能说说Service的生命周期吗?
他:不知道。我什么功能…
所属文章:
发表了一篇文章
PostgreSQL , 实时推荐系统 , 用户画像 , 标签 , TAG , 比特位
用户画像在市场营销的应用重建中非常常见,已经不是什么新鲜的东西,比较流行的解决方案是给用户贴标签…
发表了一篇文章
目前主流大厂的网站和服务都已经实现了全站https, 例如: baidu, taobao, jd等.
关于这方面的好处和优势, 互联网上太多文章在进行介绍. 例如: [为什么我们应该尽快升级到 H…
评论了该文章
德哥,请问如何才能让一个用户看不到其他username_schema下的表结构呢?现在只是不能查询,但是我想让他连表结构都看不到
所属文章:
评论了该文章
第一次用, gradlew initFreeline -Pmirror呢?下载好慢,是不是每次新建项目都要下载
所属文章:
发表了一篇文章
DELIMITER //
CREATE PROCEDURE renametables(olddb VARCHAR(50),newdb VARCHAR(50))
DECLARE done BOOLEAN DEFAULT 0;
DECLARE tmp VARCHAR(100); -- 定义局部变量
DECLARE tbcur CURSOR
SELECT TABLE_NAME FROM `information_schema`.`TABLES` WHERE table_schema=olddb AND Table_Type='BASE TABLE';
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
-- 打开游标
FETCH tbcur INTO
  SET @sqlstring=CONCAT( 'RENAME TABLE ',olddb,'.`',tmp,'` TO ',newdb,'.`',LOWER(tmp),'`;');
   SELECT @sqlstring; -- 这一句可以不要,只是打印我们拼接后要运行的SQL是什么
PREPARE s1 FROM
@sqlstring; -- 执行拼接出来的SQL
EXECUTE s1;
DEALLOCATE PREPARE s1;
UNTIL done END REPEAT;
CLOSE -- 关闭游标,释放游标使用的所有内部内存和资源
我们在新数据库中建立了该存储过程,然后调用即可:
CALL renametables('Test1','test1')
这样所有Test1中的大小写混合的表,就全部转换到了test1数据库中,而且表名都变成了小写了。
一个一个的数据库去这么做,然后再把MySQL的参数改为大小写不敏感,这样才能正常使用。
这里我只是做了表的迁移,接下来存储过程和视图的迁移,由于不涉及到数据,所以比较简单,找到当年的DDL或者我们在大小写敏感的时候就导出View和存储过程的定义,然后用文本编辑器把整个SQL变成小写的,然后到新数据库中去执行,重新创建即可。
用过MySQL的应该都会注意到,默认情况下,Linux下安装的MySQL是大小写敏感的,也就是说Table1和table1可以同时存在。而Windows下的MySQL却是大小写不敏感的,所有表名和数…
发表了一篇文章
什么是线程安全?
当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这…
评论了该文章
1-5:C、A、B、D、D6-10:D、DF、B、B、C
博主,我做对没有呢?我实在想要那本书,求博主大神成全,膜拜了!
所属文章:
发表了一篇文章
【12.01资讯速递】本次播报内容有:JetBrains Rider:一款全新的基于IntelliJ和ReSharper的.NET IDE;华为发布业界首个物联网建网方法论;英特尔人工智能论坛在京召开…
378503人浏览
375888人浏览
236744人浏览
179268人浏览
125684人浏览Merry XMAS ! 25% Discount 5-30th Dec - Laptop, Two way Raido ,Gopro HD 1 2 3 3+ Tools Retail & Wholesale Center
Your Best Source For Best Buy Gopro HD 1 2 3 3+ 4 Tools, and more electronic accessories!If you need electronic accessories,check our huge inventory, 25% Discount 5-30th Dec
Welcome To Electronic Accessories Superstore ! Your 100% Satisfaction! Your Totally Worry Free!
Laptop Battery. Retail
Location : USA
Kodak,Sanyo,Leica Sharp And Much more Retail
Location : USA
,, , , , ,
& more camcorder Batteries Retail
Location : USA
Mini Remote Control Helicopter, Miniature size & light weight.Perfect Gift For Your Friend And Family.
Available]
Useful Tools Tv Card,TV Box,Phone,Car Charger, Game,Magnifier Glass,Digital Caliper,USB Hub[
Available]
Gopro Belt, Gopro 3+ adapter, Gopro 3 headbelt, Telescopic Monopod... [ Gorpo HD 1 2 3 3+ ]
Telescopic Monopod Handle Tripod Mount Set For GoPro Hero 3+ 3 2 [ Telescopic Monopod ]
ALINCO ,ICOM, KENWOOD, MOTOROLA,STANDARD, YAESU Brand ...
[ Battery & Charger
Digital MP4 Players: 512mb MP4 Player, 1gb MP4 Player, 2gb MP4 Players, 4gb MP4 Players [
Available]
Universal Bluetooth Headset Wireless for mobile phones . Nokia, Samsung,Sony Ericsson Motorola [
Available]
Nail Art,UV Lamp,Temperature Laser Gun,Baby Feeder Thermometer,Heart Beat Monitor
Available]
CPU Fans, Computer Fans, Computer Cooling Fans, HDD Cooling Fan, USB Light Cooler Pad, Apple Cooer Pad[
Available]
Dog Beds,Dog Booties,Dog Carriers,Dog Clothing,Dog Collars,Dog Harnesses and Remote Dog training collar [
Available]
Led Light,Superbright Flashlights,Xenon Bulb,Camping Light Headlight And Bikelight[
Available]
Populer Categories:
&& Congratulation! You've Found The Most Reliable Wholesale Distributor! We Retail & Wholesale , , ,, ,, , , , ,
5000 Eletronic products.CE/UL Listed, ISO Certification,100% secure guaranteed,100% brand new, Full manufacturer Warranty, Full 30 days money back.
Find Your Perfect Consumer Electronics From Www.My-Batteries.Net ! The Right Selection, Not Just The B The Right Model, Not The M The Right Electronic Gadgets , Right When You Need Them !
Retail And Wholesale ,
Digital Cameras, Computer Electronics, Bluetooth Wireless Headset , , Flashlight,,Laser Pointer,memory card,coin battery, and Electronic Gadgets. Wherever you are, this is the worldwide web's best, simplest, most reliable way to access the electronics market.
Professional wholesale company.
We are a leading world-wide wholesaler company. We supply more than 100 thousand high-quality merchandise and famous brand name batteries, all at wholesale prices. Begin online shopping now and start your wholesale sourcing here today. Experience professional service and quality products.
Wholesale in very low minimum quantity
You can try our first class services by initially making small quantity orders. Most of our merchandises can be initially purchased in single units as a sample product and also at sample prices. Buy larger amounts and receive discounts and cheaper prices
Fast delivery for wholesale from Unisted States.
We use UPS / USPS to ship all our packages. From US to major destinations such as the U.S., Europe and Cacada, the total shipping time only takes 2 to 5 days. No hassle!
Its so easy to place a wholesale order.
You can order goods directly through our wholesale website without having to register. Use the most advanced, fast, and secure payment systems such as PayPal. You can also pay for your goods by wire transfer. Buy cheap! Save money!
Product Guarantee :
Manufactured By Hi-Capacity power products.
100% OEM Compatible Equivalent.
Guaranteed to meet or exceed OEM specifications.
Note : Please recycle your old camcorder batteries. NiCad, NiMH and Li-Ion batteries are considered hazardous to the environment and they are able to be recycled. Find out where to recycle your digital camera battery by going to the
A high quality battery has stable outcome and good endurance. It does not only provide a stable working environment, but also enhances the mobility of the laptop. “Inferior& batteries, not only short-lived, and even extremely vulnerable to overheating, fire phenomenon, which eventually leads to the explosion of the entire notebook, burning, and even greater disaster and loss. Our batteries are in high grade quality and certified by CE and RoHS. You can reassure of purchasing it!
Best ALINCO Two Way Radio Battery
Hot ICOM Two Way Radio Battery
Top KENWOOD Two Way Radio Battery
Featured MOTOROLA Two Way Radio Battery
Top YAESU Two Way Radio Battery

我要回帖

更多关于 hdmp4 的文章

 

随机推荐