sudo apt-get install openjdk-7-jdk
Don't install java by manual.
bash: /home/xxx/android-sdk-linux/platform-tools/adb: No such file or directoy
sudo apt-get install lub32stdc++6
~home/xxx/live/jni/
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := live555 #LOVAL_ARM_MODE := arm #LOCAL_PRELINK_MODULE := false #cpp flags? LOCAL_CPPFLAGS := \ -DNULL=0 -DSCOKLEN_T=socklen_t -DNO_SSTREAM -DBSD=1 -DNO_SSTREAM -fexceptions -DANDROID -DXLOCALE_NOT_USED #include header LOCAL_C_INCLUDES := \ $(LOCAL_PATH) \ $(LOCAL_PATH)/BasicUsageEnvironment/include \ $(LOCAL_PATH)/groupsock/include \ $(LOCAL_PATH)/liveMedia/include \ $(LOCAL_PATH)/UsageEnvironment/include #build the needed source file LOCAL_SRC_FILES := \ BasicUsageEnvironment/BasicHashTable.cpp \ BasicUsageEnvironment/BasicTaskScheduler.cpp \ BasicUsageEnvironment/BasicTaskScheduler0.cpp \ BasicUsageEnvironment/BasicUsageEnvironment.cpp \ BasicUsageEnvironment/BasicUsageEnvironment0.cpp \ BasicUsageEnvironment/DelayQueue.cpp \ groupsock/GroupEId.cpp \ groupsock/Groupsock.cpp \ groupsock/GroupsockHelper.cpp \ groupsock/inet.c \ groupsock/IOHandlers.cpp \ groupsock/NetAddress.cpp \ groupsock/NetInterface.cpp \ liveMedia/AC3AudioFileServerMediaSubsession.cpp \ liveMedia/AC3AudioRTPSink.cpp \ liveMedia/AC3AudioRTPSource.cpp \ liveMedia/AC3AudioStreamFramer.cpp \ liveMedia/ADTSAudioFileServerMediaSubsession.cpp \ liveMedia/ADTSAudioFileSource.cpp \ liveMedia/AMRAudioFileServerMediaSubsession.cpp \ liveMedia/AMRAudioFileSink.cpp \ liveMedia/AMRAudioFileSource.cpp \ liveMedia/AMRAudioRTPSink.cpp \ liveMedia/AMRAudioRTPSource.cpp \ liveMedia/AMRAudioSource.cpp \ liveMedia/AudioInputDevice.cpp \ liveMedia/AudioRTPSink.cpp \ liveMedia/AVIFileSink.cpp \ liveMedia/Base64.cpp \ liveMedia/BasicUDPSink.cpp \ liveMedia/BasicUDPSource.cpp \ liveMedia/BitVector.cpp \ liveMedia/ByteStreamFileSource.cpp \ liveMedia/ByteStreamMemoryBufferSource.cpp \ liveMedia/ByteStreamMultiFileSource.cpp \ liveMedia/DarwinInjector.cpp \ liveMedia/DeviceSource.cpp \ liveMedia/DigestAuthentication.cpp \ liveMedia/DVVideoFileServerMediaSubsession.cpp \ liveMedia/DVVideoRTPSink.cpp \ liveMedia/DVVideoRTPSource.cpp \ liveMedia/DVVideoStreamFramer.cpp \ liveMedia/EBMLNumber.cpp \ liveMedia/FileServerMediaSubsession.cpp \ liveMedia/FileSink.cpp \ liveMedia/FramedFileSource.cpp \ liveMedia/FramedFilter.cpp \ liveMedia/FramedSource.cpp \ liveMedia/GSMAudioRTPSink.cpp \ liveMedia/H261VideoRTPSource.cpp \ liveMedia/H263plusVideoFileServerMediaSubsession.cpp \ liveMedia/H263plusVideoRTPSink.cpp \ liveMedia/H263plusVideoRTPSource.cpp \ liveMedia/H263plusVideoStreamFramer.cpp \ liveMedia/H263plusVideoStreamParser.cpp \ liveMedia/H264or5VideoFileSink.cpp \ liveMedia/H264or5VideoRTPSink.cpp \ liveMedia/H264or5VideoStreamDiscreteFramer.cpp \ liveMedia/H264or5VideoStreamFramer.cpp \ liveMedia/H264VideoFileServerMediaSubsession.cpp \ liveMedia/H264VideoFileSink.cpp \ liveMedia/H264VideoRTPSink.cpp \ liveMedia/H264VideoRTPSource.cpp \ liveMedia/H264VideoStreamDiscreteFramer.cpp \ liveMedia/H264VideoStreamFramer.cpp \ liveMedia/H265VideoFileServerMediaSubsession.cpp \ liveMedia/H265VideoFileSink.cpp \ liveMedia/H265VideoRTPSink.cpp \ liveMedia/H265VideoRTPSource.cpp \ liveMedia/H265VideoStreamDiscreteFramer.cpp \ liveMedia/H265VideoStreamFramer.cpp \ liveMedia/InputFile.cpp \ liveMedia/JPEGVideoRTPSink.cpp \ liveMedia/JPEGVideoRTPSource.cpp \ liveMedia/JPEGVideoSource.cpp \ liveMedia/Locale.cpp \ liveMedia/MatroskaDemuxedTrack.cpp \ liveMedia/MatroskaFile.cpp \ liveMedia/MatroskaFileParser.cpp \ liveMedia/MatroskaFileServerDemux.cpp \ liveMedia/MatroskaFileServerMediaSubsession.cpp \ liveMedia/Media.cpp \ liveMedia/MediaSession.cpp \ liveMedia/MediaSink.cpp \ liveMedia/MediaSource.cpp \ liveMedia/MP3ADU.cpp \ liveMedia/MP3ADUdescriptor.cpp \ liveMedia/MP3ADUinterleaving.cpp \ liveMedia/MP3ADURTPSink.cpp \ liveMedia/MP3ADURTPSource.cpp \ liveMedia/MP3ADUTranscoder.cpp \ liveMedia/MP3AudioFileServerMediaSubsession.cpp \ liveMedia/MP3AudioMatroskaFileServerMediaSubsession.cpp \ liveMedia/MP3FileSource.cpp \ liveMedia/MP3Internals.cpp \ liveMedia/MP3InternalsHuffman.cpp \ liveMedia/MP3InternalsHuffmanTable.cpp \ liveMedia/MP3StreamState.cpp \ liveMedia/MP3Transcoder.cpp \ liveMedia/MPEG1or2AudioRTPSink.cpp \ liveMedia/MPEG1or2AudioRTPSource.cpp \ liveMedia/MPEG1or2AudioStreamFramer.cpp \ liveMedia/MPEG1or2Demux.cpp \ liveMedia/MPEG1or2DemuxedElementaryStream.cpp \ liveMedia/MPEG1or2DemuxedServerMediaSubsession.cpp \ liveMedia/MPEG1or2FileServerDemux.cpp \ liveMedia/MPEG1or2VideoFileServerMediaSubsession.cpp \ liveMedia/MPEG1or2VideoRTPSink.cpp \ liveMedia/MPEG1or2VideoRTPSource.cpp \ liveMedia/MPEG1or2VideoStreamDiscreteFramer.cpp \ liveMedia/MPEG1or2VideoStreamFramer.cpp \ liveMedia/MPEG2IndexFromTransportStream.cpp \ liveMedia/MPEG2TransportFileServerMediaSubsession.cpp \ liveMedia/MPEG2TransportStreamFramer.cpp \ liveMedia/MPEG2TransportStreamFromESSource.cpp \ liveMedia/MPEG2TransportStreamFromPESSource.cpp \ liveMedia/MPEG2TransportStreamIndexFile.cpp \ liveMedia/MPEG2TransportStreamMultiplexor.cpp \ liveMedia/MPEG2TransportStreamTrickModeFilter.cpp \ liveMedia/MPEG2TransportUDPServerMediaSubsession.cpp \ liveMedia/MPEG4ESVideoRTPSink.cpp \ liveMedia/MPEG4ESVideoRTPSource.cpp \ liveMedia/MPEG4GenericRTPSink.cpp \ liveMedia/MPEG4GenericRTPSource.cpp \ liveMedia/MPEG4LATMAudioRTPSink.cpp \ liveMedia/MPEG4LATMAudioRTPSource.cpp \ liveMedia/MPEG4VideoFileServerMediaSubsession.cpp \ liveMedia/MPEG4VideoStreamDiscreteFramer.cpp \ liveMedia/MPEG4VideoStreamFramer.cpp \ liveMedia/MPEGVideoStreamFramer.cpp \ liveMedia/MPEGVideoStreamParser.cpp \ liveMedia/MultiFramedRTPSink.cpp \ liveMedia/MultiFramedRTPSource.cpp \ liveMedia/OggDemuxedTrack.cpp \ liveMedia/OggFile.cpp \ liveMedia/OggFileParser.cpp \ liveMedia/OggFileServerDemux.cpp \ liveMedia/OggFileServerMediaSubsession.cpp \ liveMedia/OggFileSink.cpp \ liveMedia/OnDemandServerMediaSubsession.cpp \ liveMedia/ourMD5.cpp \ liveMedia/OutputFile.cpp \ liveMedia/PassiveServerMediaSubsession.cpp \ liveMedia/ProxyServerMediaSession.cpp \ liveMedia/QCELPAudioRTPSource.cpp \ liveMedia/QuickTimeFileSink.cpp \ liveMedia/QuickTimeGenericRTPSource.cpp \ liveMedia/RTCP.cpp \ liveMedia/rtcp_from_spec.c \ liveMedia/RTPInterface.cpp \ liveMedia/RTPSink.cpp \ liveMedia/RTPSource.cpp \ liveMedia/RTSPClient.cpp \ liveMedia/RTSPCommon.cpp \ liveMedia/RTSPRegisterSender.cpp \ liveMedia/RTSPServer.cpp \ liveMedia/RTSPServerSupportingHTTPStreaming.cpp \ liveMedia/ServerMediaSession.cpp \ liveMedia/SimpleRTPSink.cpp \ liveMedia/SimpleRTPSource.cpp \ liveMedia/SIPClient.cpp \ liveMedia/StreamParser.cpp \ liveMedia/StreamReplicator.cpp \ liveMedia/T140TextRTPSink.cpp \ liveMedia/TCPStreamSink.cpp \ liveMedia/TextRTPSink.cpp \ liveMedia/TheoraVideoRTPSink.cpp \ liveMedia/TheoraVideoRTPSource.cpp \ liveMedia/uLawAudioFilter.cpp \ liveMedia/VideoRTPSink.cpp \ liveMedia/VorbisAudioRTPSink.cpp \ liveMedia/VorbisAudioRTPSource.cpp \ liveMedia/VP8VideoRTPSink.cpp \ liveMedia/VP8VideoRTPSource.cpp \ liveMedia/WAVAudioFileServerMediaSubsession.cpp \ liveMedia/WAVAudioFileSource.cpp \ UsageEnvironment/HashTable.cpp \ UsageEnvironment/strDup.cpp \ UsageEnvironment/UsageEnvironment.cpp include $(BUILD_SHARED_LIBRARY)
ndk-build
int swap(int a, int b) { int tmp = a; a = b; b = tmp; printf("%d, %d", &a, &b); // 2686752, 2686756 printf("%d, %d", a, b); // 20, 10 } int main() { int a, b; a = 10; b = 20; printf("%d, %d", &a, &b); // 2686788, 2686784 swap(a, b); printf("%d, %d", a, b); // 10, 20 }
int swap(int *a, int *b) { int tmp = *a; *a = *b; *b = tmp; printf("%d, %d", &a, &b); // 2686752, 2686756 printf("%d, %d", a, b); // 2686788, 2686784 printf("%d, %d", *a, *b); // 20, 10 } int main() { int a, b; a = 10; b = 20; printf("%d, %d", &a, &b); // 2686788, 2686784 swap(&a, &b); printf("%d, %d", a, b); // 20, 10 }
int swap(int &a, int &b) { int tmp = a; a = b; b = tmp; printf("%d, %d", &a, &b); // 2686788, 2686784 printf("%d, %d", *a, *b); // 20, 10 } int main() { int a, b; a = 10; b = 20; printf("%d, %d", &a, &b); // 2686788, 2686784 swap(a, b); printf("%d, %d", a, b); // 20, 10 }Note
printf("sizeof(char) = %d\n", sizeof(char)); // 1 printf("sizeof(short) = %d\n", sizeof(short)); // 2 printf("sizeof(int) = %d\n", sizeof(int)); // 4 printf("sizeof(long) = %d\n", sizeof(long)); // 4 printf("sizeof(float) = %d\n", sizeof(float)); // 4 printf("sizeof(double) = %d\n", sizeof(double)); // 8 printf("sizeof(char) = %d\n", sizeof(char*)); // 4 printf("sizeof(short) = %d\n", sizeof(short*)); // 4 printf("sizeof(int) = %d\n", sizeof(int*)); // 4 printf("sizeof(long) = %d\n", sizeof(long*)); // 4 printf("sizeof(float) = %d\n", sizeof(float*)); // 4 printf("sizeof(double) = %d\n", sizeof(double*)); // 4Reason:
public partial class Form1 : Form { [DllImport("kernel32.dll", SetLastError = true)] [return: MarshalAs(UnmanagedType.Bool)] static extern bool AllocConsole(); public Form1(string[] args) { AllocConsole(); InitializeComponent(); } }
[STAThread] static void Main(string[] args) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1(args)); // send args to Form1.cs }In Form1.cs
public partial class Form1 : Form { public Form1(string[] args) { foreach (string parameter in args) System.Console.WriteLine(parameter); } }
private void connect() { String device_URL = "http://tw.yahoo.com/"; HttpURLConnection urlc; try { urlc = (HttpURLConnection) new URL(device_URL).openConnection(); urlc.connect(); Log.e("POST", urlc.getResponseMessage()); } catch (Exception e) { e.printStackTrace(); } }
private void ignoreNetworkPolicy() { if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); } }
public void createConnectThread() { Thread thread = new Thread(new Runnable() { @Override public void run() { request(); } }); thread.start(); }
private void updateUI() { Handler handler = new Handler(); handler.post(new Runnable() { @Override public void run() { mTextView.setText("123"); } }); }
System.Console.Write("Showing\n"); System.Console.WriteLine("Showing");
System.IO.Directory.CreateDirectory("Test");
string fileName = "Test\\data.txt"; if(File.Exists(fileName)) File.Create(fileName).Close();
string fileName = "Test\\data.txt"; StreamWriter sw= new StreamWriter(fileName); sw.Write("First"); sw.WriteLine("Second"); sw.Close();
string fileName = "Test\\data.txt"; StreamReader sr = new StreamReader(fileName); System.Console.WriteLine("" + sr.Read());