??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品成人图区,国产成人精品日本亚洲专区61,久久精品国产亚洲AV果冻传媒http://m.tkk7.com/amplifier/category/50825.htmlamplifier's java blog <br> <script type="text/javascript"><!-- google_ad_client = "ca-pub-5575070670019942"; /* blogjava */ google_ad_slot = "7055672771"; google_ad_width = 728; google_ad_height = 90; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>zh-cnFri, 17 Nov 2017 07:38:01 GMTFri, 17 Nov 2017 07:38:01 GMT60利用jmtp库读取手机文?/title><link>http://m.tkk7.com/amplifier/archive/2017/11/17/432903.html</link><dc:creator>amp@java</dc:creator><author>amp@java</author><pubDate>Fri, 17 Nov 2017 06:54:00 GMT</pubDate><guid>http://m.tkk7.com/amplifier/archive/2017/11/17/432903.html</guid><wfw:comment>http://m.tkk7.com/amplifier/comments/432903.html</wfw:comment><comments>http://m.tkk7.com/amplifier/archive/2017/11/17/432903.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/amplifier/comments/commentRss/432903.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/amplifier/services/trackbacks/432903.html</trackback:ping><description><![CDATA[ 每次换手机,把旧手机的数据迁Ud新手机就是个很麻烦的事情Q幸好最q华为的“手机克隆”APP来强大,居然能够把微信的聊天记录包括囄原封不动地迁Ud新手ZQ以前用微信自带的聊天记录{Ud能只能{UL字信息,囄视频全部丢失Q不知道现在的怎么栗手机克隆还能把SD卡的内容也{U过来,基本满了需要?br /> 但是要把手机上的东西传到?sh)脑没那么单了Q现在已l没有了以前的大定w存储模式Q只能选择MTP模式Q这U模式其实不是一个完整的文gpȝQ有很多限制Q所以一些传l的软gd不到Q例如FastCopy是用不了的,用Windows自带的文件管理器来复Ӟ开始计时间就要等很久Q中间出了个错就前功弃Q还有通过手机上的APP讉K?sh)脑׃n的方式,在手Z复制也可以,但是同样?x)莫名其妙卡死,FTP同理Q折腾了好久Q还是觉得自己动手比较好?br /> MTP协议在维基百U里解释得比较清楚:(x)<a >https://en.wikipedia.org/wiki/Media_Transfer_Protocol</a> Q简单点说就是:(x)<br /> 1、不是以块设备的形式讉KQ跟U盘不同;<br /> 2、只能单U程讉KQ不能同时进行多个操作,只能一个接一个;<br /> 3、控制权在设备上Q对外展C的内容p备决定;<br /> 4、默认不能直接对文gq行部分修改Q只能复制过来修改完再复制回去,但Android对协议做了扩展,能够修改部分文g内容Q?br /> 5、在Linux上有些Y件能够把它挂载ؓ(f)文gpȝQ这样其他Y件就能像讉K普通文件系l一栯问了Q但是Windows下似乎没有?br /> <br /> 不过有h开发了一个在Windows下通过JNI实现的Java库jmtpQ项目托在Google CodeQ被墙了Q但是GitHub有hfork了一个,可以下蝲下来Q我下蝲的是<a >https://github.com/reindahl/jmtp</a><br /> 里面包含了C++的代码和Java的代码,以及(qing)两个已经~译好的dll文gQ分别用于Win32和W(xu)in64Q把其中一个dll文g攑֜工程目录下,再把Java源代码加入工E中卛_使用Q文档比较简陋,但是看test目录下的MtpTest.javaQ基本可以摸到如何用了Q这个协议比较简单,其实没什么功能,我要的只是把文g复制到电(sh)脑上?br /> Ҏ(gu)MtpTest.javaQ稍微修改一下,做个递归复制卛_把手Z的所有文件复制到?sh)脑上?x)<br /> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #0000FF; ">package</span><span style="color: #000000; "> test;<br /> <br /> </span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> java.io.File;<br /> </span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> java.io.FileWriter;<br /> </span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> java.io.IOException;<br /> </span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> java.math.BigInteger;<br /> </span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> java.nio.file.Files;<br /> </span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> java.nio.file.Path;<br /> </span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> java.nio.file.Paths;<br /> </span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> java.rmi.server.SocketSecurityException;<br /> </span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> java.util.ArrayList;<br /> <br /> <br /> </span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> jmtp.PortableDevice;<br /> </span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> jmtp.PortableDeviceFolderObject;<br /> </span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> jmtp.PortableDeviceManager;<br /> </span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> jmtp.PortableDeviceObject;<br /> </span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> jmtp.PortableDeviceStorageObject;<br /> <br /> <br /> </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">class</span><span style="color: #000000; "> TestApp {<br /> <br />     </span><span style="color: #000000; "><br />     </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> main(String[] args) {<br />         </span><span style="color: #008000; ">//</span><span style="color: #008000; "> TODO Auto-generated method stub</span><span style="color: #008000; "><br /> </span><span style="color: #000000; ">        <br />         ArrayList</span><span style="color: #000000; "><</span><span style="color: #000000; ">PortableDeviceStorageObject</span><span style="color: #000000; ">></span><span style="color: #000000; "> devices </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> ArrayList</span><span style="color: #000000; "><></span><span style="color: #000000; ">();<br /> <br />         PortableDeviceManager manager </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> PortableDeviceManager();<br /> <br />         </span><span style="color: #0000FF; ">for</span><span style="color: #000000; "> (PortableDevice device : manager) {<br />             System.out.println(device);<br />             device.open();<br />             <br />             </span><span style="color: #008000; ">//</span><span style="color: #008000; "> Iterate over deviceObjects</span><span style="color: #008000; "><br /> </span><span style="color: #000000; ">            </span><span style="color: #0000FF; ">for</span><span style="color: #000000; "> (PortableDeviceObject object : device.getRootObjects()) {<br />                 String storageName</span><span style="color: #000000; ">=</span><span style="color: #000000; ">object.getName();<br />                 System.out.println(storageName);<br /> </span><span style="color: #000000; "><br />                 </span><span style="color: #008000; ">//</span><span style="color: #008000; "> If the object is a storage object</span><span style="color: #008000; "><br /> </span><span style="color: #000000; ">                </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> (object </span><span style="color: #0000FF; ">instanceof</span><span style="color: #000000; "> PortableDeviceStorageObject) {<br />                     PortableDeviceStorageObject storage </span><span style="color: #000000; ">=</span><span style="color: #000000; "> (PortableDeviceStorageObject) object;<br />                     System.out.println(storage.getChildObjects().length);<br />                     </span><span style="color: #0000FF; ">for</span><span style="color: #000000; "> (PortableDeviceObject child : storage.getChildObjects()) {<br />                             copyall(child,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">E:\\手机备䆾\\</span><span style="color: #000000; ">"</span><span style="color: #000000; ">+</span><span style="color: #000000; ">object.getName());<br />                     }<br />                 }<br />             }<br /> <br />             device.close();<br />             System.out.println(size);<br />         }<br /> <br />   </span><span style="color: #000000; ">   <br />     }<br />     <br />     </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> copyall(PortableDeviceObject obj,String path) {<br /> </span><span style="color: #008000; "><br /> </span><span style="color: #000000; ">        </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(obj </span><span style="color: #0000FF; ">instanceof</span><span style="color: #000000; "> PortableDeviceFolderObject) {<br />            </span><span style="color: #008000; "><br /> </span><span style="color: #000000; ">            String objName</span><span style="color: #000000; ">=</span><span style="color: #000000; ">obj.getName();<br />             </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(objName.contains(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">:</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)) {<br />                 objName</span><span style="color: #000000; ">=</span><span style="color: #000000; ">objName.replace(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">:</span><span style="color: #000000; ">'</span><span style="color: #000000; ">, </span><span style="color: #000000; ">'</span><span style="color: #000000; ">Q?/span><span style="color: #000000; ">'</span><span style="color: #000000; ">);<br />             }<br />             String newPath </span><span style="color: #000000; ">=</span><span style="color: #000000; "> path</span><span style="color: #000000; ">+</span><span style="color: #000000; ">"</span><span style="color: #000000; ">\\</span><span style="color: #000000; ">"</span><span style="color: #000000; ">+</span><span style="color: #000000; ">objName;<br />             System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">创徏文g夹:(x)</span><span style="color: #000000; ">"</span><span style="color: #000000; ">+</span><span style="color: #000000; ">newPath);<br />             <br /> </span><span style="color: #008000; "></span><span>           </span><span> File file = new File(newPath);<br /> </span><span style="color: #008000; "></span><span>            if(!file.exists()) {<br /> </span><span style="color: #008000; "></span><span>                file.mkdirs();<br /> </span><span style="color: #008000; "></span><span>            }</span><span style="color: #008000; "><br /> </span><span style="color: #000000; ">            </span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(PortableDeviceObject subObj:((PortableDeviceFolderObject) obj).getChildObjects()) {              </span><span style="color: #000000; "><br />                 copyall(subObj,newPath);<br />             }<br />         }<br />         </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "> {</span><span style="color: #000000; ">       <br />             </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(obj.getName().contains(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">:</span><span style="color: #000000; ">"</span><span style="color: #000000; ">))<br />                 </span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">;<br />             System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">开始复制文件到Q?/span><span style="color: #000000; ">"</span><span style="color: #000000; ">+</span><span style="color: #000000; ">path</span><span style="color: #000000; ">+</span><span style="color: #000000; ">"</span><span style="color: #000000; ">\\</span><span style="color: #000000; ">"</span><span style="color: #000000; ">+</span><span style="color: #000000; ">obj.getName());<br />             File file </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> File(path);<br /> </span><span>            </span><span style="color: #008000; "></span><span>obj.copy(file.toPath());</span><span style="color: #008000; "></span><span style="color: #000000;">          </span><span style="color: #000000; ">            <br />             System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">文g复制完成Q?/span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />         }<br />     }</span><span style="color: #000000; "><br /> }</span></div> 其中发现有点问题Q?br />1、Android讑֤文g名里是可以包含冒P:Q的Q但Windows是不可以的,所以复制到q些文g的时候会(x)有问题,于是遇到目录名这样就把它改ؓ(f)中文的冒PQ)Q但是遇到文件名q样׃行了Q因个库的copy函数只需要指定目标目录,不需要指定目标文件名Q所以这些文件只能放弃;<br />2、Android手机的MTP协议是由“媒体存储”q个pȝAPP控制的,有时候手Z可以看到的文Ӟ通过MTP讉K却怎么也看不到Q重启手Z不行Q应该就是这个APP没有更新数据Q需要把它的pȝ数据清除掉,{它重徏完重新访问就可以看到了,不过q个重徏旉非常长,可以查看它数据占用的I间Q刚清除之后?x)发现它占用的空间?x)不断增长Q到了不增长的时候就是重建完了,可以正常访问了Q?br />3、这个库有时候还有点bugQ有一ơ发现它d到的文g和文件夹都没有了最后一?后面的部分,所以L卡住Q重新插拔一下手机数据线又没问题了;<br />4、ؓ(f)了避免复制了半天l果发现不完_(d)又要重来Q最好在复制前先l计一下文件大,看看跟手Z看到的占用存储空间是不是一_(d)对于MTP讑֤上的文gQ可以通过getSize函数得到大小Q把上面复制操作改ؓ(f)大小累加卛_Q速度比复制快一些,不过׃文件太多,也不?x)快很多?br /><br />把手机里的文件复制到?sh)脑后,通过一些简单的分析Q发现有很多其实是垃圾来的,也可以ؓ(f)手机I间清理提供参考,因ؓ(f)在电(sh)脑上分析h比在手机上方便一些。例如一些视频APP的缓存,居然过1GQ占用了宝贵的内部存储空_(d)之前一直都没发玎ͼ通过?sh)脑里的按文件大搜索才发现?img src ="http://m.tkk7.com/amplifier/aggbug/432903.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/amplifier/" target="_blank">amp@java</a> 2017-11-17 14:54 <a href="http://m.tkk7.com/amplifier/archive/2017/11/17/432903.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Android手机用来做电(sh)脑摄像头http://m.tkk7.com/amplifier/archive/2014/06/05/414431.htmlamp@javaamp@javaThu, 05 Jun 2014 07:35:00 GMThttp://m.tkk7.com/amplifier/archive/2014/06/05/414431.htmlhttp://m.tkk7.com/amplifier/comments/414431.htmlhttp://m.tkk7.com/amplifier/archive/2014/06/05/414431.html#Feedback4http://m.tkk7.com/amplifier/comments/commentRss/414431.htmlhttp://m.tkk7.com/amplifier/services/trackbacks/414431.html
我是在做一个电(sh)脑二l码识别器的时候,因ؓ(f)原来的摄像头太差Q从而想到用一台淘汰的Android手机来代ѝ?br />
q类应用应该不少Q我首先扑ֈ的是一个叫DraoidCam的应用,装好之后发现免费版没法调整分辨率Q于是放弃之?br />
然后又找C一个国内做的免费YӞ叫魅Ԍ非常单,支持USB和W(xu)iFiq接方式Q如果是USBq接的话Q打开USB调试模式之后Q运行电(sh)脑的客户端,手机上就自动装上了Appq且自动q行Q可以调整分辨率Q不q最高只?40*480Q率不?0Q不q已l能够满x的需求了?br />
然后可以像普通PC摄像头一样用了Q在JMF里面也能扑ֈQ于是就可以被Java调用了。经试Q效果比原来的PC摄像头好多了?br />
软g主页Q?a target="_blank" >http://www.libfetion.org/meise/

amp@java 2014-06-05 15:35 发表评论
]]>
Android开发:(x)使用Fragment攚wTabActivityhttp://m.tkk7.com/amplifier/archive/2012/12/27/393409.htmlamp@javaamp@javaThu, 27 Dec 2012 11:07:00 GMThttp://m.tkk7.com/amplifier/archive/2012/12/27/393409.htmlhttp://m.tkk7.com/amplifier/comments/393409.htmlhttp://m.tkk7.com/amplifier/archive/2012/12/27/393409.html#Feedback0http://m.tkk7.com/amplifier/comments/commentRss/393409.htmlhttp://m.tkk7.com/amplifier/services/trackbacks/393409.html阅读全文

amp@java 2012-12-27 19:07 发表评论
]]>
2012q?月最新版的ADT 17.0和Google AdMob Ads Sdk Android-4.3.1dq告的方?/title><link>http://m.tkk7.com/amplifier/archive/2012/03/25/372652.html</link><dc:creator>amp@java</dc:creator><author>amp@java</author><pubDate>Sun, 25 Mar 2012 11:23:00 GMT</pubDate><guid>http://m.tkk7.com/amplifier/archive/2012/03/25/372652.html</guid><wfw:comment>http://m.tkk7.com/amplifier/comments/372652.html</wfw:comment><comments>http://m.tkk7.com/amplifier/archive/2012/03/25/372652.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://m.tkk7.com/amplifier/comments/commentRss/372652.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/amplifier/services/trackbacks/372652.html</trackback:ping><description><![CDATA[AdMob是往手机应用E序里添加广告的最行的方式,AndroidE序基本都是靠这个赚钱。看文档g很简单,但是操作h却不是那么回事,今天搞了一上午才弄明白怎么正确dQ网上搜索到的资料都不适合最新的SDK?br /><br />按照AdMob的官Ҏ(gu),很简单,只要把AdMob的开发包jar攑ֈBuild Path的Libraries里面p了,q样做编译是没问题的Q但是一q行׃(x)出错Q提C?br /><div>java.lang.NoClassDefFoundError:com.google.ads.AdView<br /></div>q是因ؓ(f)Google最q更CADT?7.0Q改变了目依赖的检方式,官方的说明在<a target="_blank" >q里</a>Q不q看得不是很懂。有人用囑Ş的方式标了出来,Ҏ(gu)理解一些,?a target="_blank" >q里</a>。如果不求甚解,把刚才攑ֈBuild Path里面的jarU除Q直接在目目录下徏立一个libs目录Q然后把那个jar文g放进d行了?br /><br /><div>AdMob SDK也更新到?.3.1Q网上搜索到的在XML文g里面讄AdView属性的Ҏ(gu)也已q时Q现在不需要徏立attrs.xml文gQ直接增加一?div>xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"<br />可以在AdView标签里面讄a(chn)ds开头的属性了Q关于xml讄AdView属性的官方文档隐藏得比较深Q没有在目录中列出来Q只能在其他文档里面的链接里q去Q在<a target="_blank" >q里</a>?br /></div></div>另外Q按照官方说明,要在AndroidManifest.xml里面d一个Activity的声明:(x)<br /><div>    <activity android:name="com.google.ads.AdActivity"<br />              android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/></div>后面那个属性android:configChanges的最后两个值screenSize|smallestScreenSize是在Android 3.2后面才增加的Q这两个值必d上去Q否则运行的时候会(x)报错。如果你使用的SDK?.2以下的,识别不了q两个|~译也不?x)报错。因此你的项目必M用Android 3.2以上的SDKQ也是目根目录下的project.properties文g里面的属性target的值必Landroid-13以上Q例?br /><div><div><div>target=android-15</div></div></div>但是可以在AndroidManifest.xml里面讄a(chn)ndroid:minSdkVersion和android:targetSdkVersion为比13低的|q样׃需要安装Android 3.2以上的手机或qx来运行这个程序,实际上AdMob支持Android 1.5以上的系l,只是开发需要更高版本的SDK而已?br /><div><br /><br />q次折腾让我真正体会(x)到Android更新得实在太快了Q连官方的文档都来不?qing)更斎ͼ开发h员只能自己摸索ȝQ幸好有强大的搜索工P只要你遇到的问题不是W一个,׃(x)有h扑ֈ解决Ҏ(gu)?/div><br /><br /><br /><img src ="http://m.tkk7.com/amplifier/aggbug/372652.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/amplifier/" target="_blank">amp@java</a> 2012-03-25 19:23 <a href="http://m.tkk7.com/amplifier/archive/2012/03/25/372652.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>通过Android模拟器运行网l通信E序http://m.tkk7.com/amplifier/archive/2012/02/24/370655.htmlamp@javaamp@javaFri, 24 Feb 2012 02:37:00 GMThttp://m.tkk7.com/amplifier/archive/2012/02/24/370655.htmlhttp://m.tkk7.com/amplifier/comments/370655.htmlhttp://m.tkk7.com/amplifier/archive/2012/02/24/370655.html#Feedback0http://m.tkk7.com/amplifier/comments/commentRss/370655.htmlhttp://m.tkk7.com/amplifier/services/trackbacks/370655.htmlAndroid模拟器是通过一个类D\由器的虚拟网l层与电(sh)脑相q,可以看作模拟器是处于“内网”当中Q每个模拟器都有自己的虚拟\由器Q而且虚拟路由器的地址L10.0.2.1Q在模拟器看来,?sh)脑的地址?0.0.2.2Q模拟器自己的地址?0.0.2.15Q无Z启动多少个模拟器Q对于模拟器来说都是q样的地址Q模拟器之间不能直接通信?br />启动模拟器的时候,?sh)脑会(x)给模拟器分配两个端口,通过q两个端口,?sh)脑p操作模拟器。第一个启动的模拟器的端口?554?555Q第二个?556?557Q以此类推,最多可以同时启?2个模拟器。第一个端口(偶数端口Q可以接受telnetq接Q对模拟器进行设|,W二个端口(奇数端口Q则接受adbq接Q可以用来调试。第一个端口可以在模拟器窗口的标题栏看刎ͼ如下图所C:(x)

5554表示端口Pt表示模拟器名U?br />实际上,q些端口也是?sh)脑监听的端口,在?sh)脑上通过netstat可以看到本机正在监听q些端口Q因此通过telnet localhost 5554pq上W一台模拟器Q连上之后通过help命o(h)可以查看操作帮助?br />Z实现?sh)脑和模拟器上的androidE序q行socket通信Q需要把E序开启的端口通过端口映射讄到电(sh)脑上Q这跟家里的路由器端口映概忉|一L(fng)。telnet到模拟器之后Q通过
redir add tcp:1234:1234
p把模拟器上的1234端口映射到电(sh)脑上Q第一个表C电(sh)脑端口,W二个表C模拟器E序要用端口,q两个数字可以相同也可以不同Q要映射udp端口把tcp改ؓ(f)udp卛_
redir add udp:1234:1234
q样一来,当模拟器的程序打开1234端口Ӟ在电(sh)脑上也打开了对应的端口Q只要通过?sh)脑q接127.0.0.1的对应端口,p上了模拟器的E序端口Q就可以通过?sh)脑上的client向模拟器的server发送数据,不需要通过真机q行?br />如果要让W一个模拟器向第二个模拟器发送数据,也可以把W二个模拟器的端口映到?sh)脑上,然后在第一个模拟器E序中向10.0.2.2的对应端口发送数据即可?br />

模拟器还有一个很有意思的功能Q每个模拟器默认的电(sh)话号码就是它的第一个端口号Q例如开了两个模拟器Q第一个拨?556Q第二个׃(x)昄5554来电(sh)Q还能接通,发短信也可以Q这样就能模拟电(sh)话和短信功能?br />
详细的信息可以看Dev Guide的模拟器部分Q?a target="_blank" >http://developer.android.com/guide/developing/devices/emulator.html

amp@java 2012-02-24 10:37 发表评论
]]>
送给老婆的情C物——一个AndroidE序http://m.tkk7.com/amplifier/archive/2012/02/16/370080.htmlamp@javaamp@javaThu, 16 Feb 2012 03:06:00 GMThttp://m.tkk7.com/amplifier/archive/2012/02/16/370080.htmlhttp://m.tkk7.com/amplifier/comments/370080.htmlhttp://m.tkk7.com/amplifier/archive/2012/02/16/370080.html#Feedback2http://m.tkk7.com/amplifier/comments/commentRss/370080.htmlhttp://m.tkk7.com/amplifier/services/trackbacks/370080.html
x可嘉Q但是动h来却不是那么回事。学了那么多天,真正z上用场的还没学到。时间只剩下不到一个小时了Q我?x)的只是在屏q上昄几个大字QXXXQ我׃Q?br />
后来xg太单调,如果能够加上点背景音乐可能好点,但是q没学会(x)怎么使用Q上|搜了一下,q好很简单,用MediaPlayer可以了Q几条语句就能搞定。音乐文件怎么来呢Q通过|络在线播放是最单的Q于是就到百度MP3搜了一?#8220;情h节快?#8221;Q我记得有一首歌里面一直在?#8220;情h节快?#8221;的,l果最后发现那首歌名字叫《没有情人的情h节?#8230;…

了Q管它呢Q有老婆p了,没有情h照样q情Q打开发现链接居然是百度的Q以前百度不是说它只负责搜烦Q不负责存放吗,怎么现在的MP3都放在百度的服务器了Q把链接复制下来Q在模拟器上q行q是挺好的,因ؓ(f)它用的是?sh)脑的宽带,呵呵。不q过了一?x)提CZ载失败,把那个地址往览器一_(d)果然打不开了,原来癑ֺq种下蝲链接是有有效期的Q只能让你试听一下,然后下蝲Q不是长期有效的。这麻烦了Q到时候装在手Z没声韛_不是很糗Q?br />
再搜索一下,q好Q可以把MP3文g攑֜assets里面Q发布程序的时候把它包含在apk里面p了,不用联网了?br />
现在可以在显C大字的同时播放《没有情人的情h节》了。看了一下效果,q是有点怪异Q手机的状态栏和程序的标题跟黑色的背景Q红色的大字g不太搭配Q于是l搜索全屏代码,哈哈Q两句搞定,q样炫多了?br />
不过一直看着那几个字没Q何反应,g太单调了Q于是就惌它们不断变色Q或者动一下也好,但是无论怎么弄都搞不定,下班旉CQ要L老婆了,p样吧?br />
之前都是在模拟器上运行,或者接个USB在手Zq行Q还不知道怎么打包成apk呢,q下居然没搜索到Q可能太单了Q大安没说。于是在目上点右键Q果然看到导出apk的菜单,我选择了unsigned方式导出Q在手机上居然安装不了。再搜烦一下,哦,原来是要导出成signed apk才能装的Q但是我没有证书Q怎么signed呢?没想到ADTq可以生成证书,一下就搞定了,q比Symbian那种{֐单多了,但是可能也是DAndroid恶意软g泛滥的原因之一?br />
L老婆的时候通过蓝牙把apk发到Ҏ(gu)ZQ装上,q行Q从她表情上看出Q我的努力没有白贏V不q最后还是发C个严重的bugQ那首歌q没攑֮Q另外一个声韛_l重新开始了QŞ成了“二重?#8221;的效果,而且E序退Z后还在唱Q赶工造成的?zhn)剧啊?br />
下面是代码:(x)
public class LoveActivity extends Activity {
    TextView text;
    
/** Called when the activity is first created. */
    @Override
    
public void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,   
        WindowManager.LayoutParams.FLAG_FULLSCREEN);  
        requestWindowFeature(Window.FEATURE_NO_TITLE);  
        setContentView(R.layout.main); 
        MediaPlayer mp 
= new MediaPlayer();
        
try{
            AssetManager assetManager 
= getAssets();
            AssetFileDescriptor afd 
= assetManager.openFd("a.mp3");
            mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
            mp.prepare();
            mp.start();
        }
        
catch (Exception e) {
            e.printStackTrace();
        }
    }
}
main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation
="vertical"
    android:layout_width
="fill_parent"
    android:layout_height
="fill_parent"
    
>
    
<TextView 
    
android:id="@+id/textView1" 
    android:text
="@string/loveyou" 
    android:layout_width
="match_parent" 
    android:layout_height
="match_parent" 
    android:gravity
="center" 
    android:textColor
="#ff0000"
    android:textStyle
="bold"
    android:textSize
="50dip"
    
/>
    
   
</LinearLayout>
strings.xmlQ?br />
<?xml version="1.0" encoding="utf-8"?>
<resources>
    
<string name="hello">Hello World, LoveActivity!</string>
    
<string name="app_name">Love</string>
    
<string name="loveyou">XXX\n我爱?/span></string>
</resources>
再把那首mp3攑ֈassets里,改名为a.mp3卛_?br />



希望明年能做Z更好的?img src ="http://m.tkk7.com/amplifier/aggbug/370080.html" width = "1" height = "1" />

amp@java 2012-02-16 11:06 发表评论
]]>
Android和JavaSEҎ(gu)印空字符串的区别http://m.tkk7.com/amplifier/archive/2012/02/13/369867.htmlamp@javaamp@javaMon, 13 Feb 2012 06:49:00 GMThttp://m.tkk7.com/amplifier/archive/2012/02/13/369867.htmlhttp://m.tkk7.com/amplifier/comments/369867.htmlhttp://m.tkk7.com/amplifier/archive/2012/02/13/369867.html#Feedback1http://m.tkk7.com/amplifier/comments/commentRss/369867.htmlhttp://m.tkk7.com/amplifier/services/trackbacks/369867.html
一直以来,在JavaSE里,如果字符串本w是nullQSystem.out.println()打印该字W串Q会(x)在终端输?#8220;null”Q而在Android里却是直接抛出NullPointerExceptionQ整个程序都?x)被l止?br />
大家可以试一下下面的语句在两U环境下的运行结果:(x)
1 String s = null;
2 System.out.println(s);


amp@java 2012-02-13 14:49 发表评论
]]>
վ֩ģ壺 Ů18һëƬѹۿ| Ʒѹۿ| Ļ| ձvƬһ| Ůһһ鴤Ƶ| ޵һƷ| Ļ4| ۺѾƷþþ| һ߹ۿ| ˾ƷԻ79ren| ɫ鶹һƷһAVһ| һһһ| Ʒmnbavվ | ѹۺƵ߿| þֻƷ10| ޾ƷþþþþV| Av뾫Ʒ| ëƬ18ŮëƬѿ| ߿Ƭ˳Ƶ | ѿƬ| ߹ۿ˳վ| ޹ۺϾƷһ߲| 99þѾƷƵ| ҹAëƬƵ| ޳aƬ߹ۿƷ| ޾Ʒ벻߲HE | žžƷƵ| 99þþƷëƬѲ| youwu뾫Ʒ| ѿ߾Ʒһ| ߲| ѹҹ| AVվ| ߹ۿƵһ| պëƬƵ| Ļ˵ | Ů׽Ƶ| þþžAVѾƷ| ŮƵѹۿվ | һֻ | ֳִִƵ |